php - 删除一篇帖子时,删除所有相关帖子
问题描述
我有以下概念:
我有一个带有自定义字段的前端表单,每次在前端创建帖子时都会保存当前的 slug。如下:
帖子 1 有 slug="1234"
当我使用 slug 1234 在 Post 1 时,我可以使用嵌入表单创建 Post 2,并且“1234”将保存在 Post 2 的自定义字段“custum-id-1”中。
现在,当删除其中一个帖子时,我想获取当前已删除帖子的 slug 并搜索是否有其他帖子将该 slug 的名称作为 custom-id-1 字段中的值并将它们也删除。这意味着如果 Post 1234 被删除,那么 Post 2 也应该被删除,因为 Post 2 的 custom-id-1 保存了 Post 1 的 slug 名称。
我怎样才能做到这一点?
解决方案
假设数据在帖子中存储为整数/字符串。您可以添加此代码来查询帖子元等于当前删除候选者的帖子,然后通过结果迭代删除它们。
<?php
add_action('before_delete_post', 'my_before_delete_post');
function my_before_delete_post($postid)
{
$args = array(
'post_type' => array(
'post'
),
'meta_query' => array(
array(
'key' => 'custum-id-1',
'value' => get_post_field( 'post_name', $postid )
)
)
);
// The Query
$query = new WP_Query($args);
// The Loop
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
wp_delete_post(get_the_ID());
}
}
wp_reset_postdata();
}
?>
推荐阅读
- tensorflow - ValueError: None 仅在第一维中受支持。张量“input_tensor”的形状无效“[1, None, None, 3]”
- angularjs - AngularJS 1.8.1 组件未在 Internet Explorer 中加载
- php - 使用 .htaccess 更改我的 php 站点的 URL
- c# - Google Cloud Pub Sub StreamingPull 无法正常工作
- xamarin - 如何优化 xamarin android 应用程序大小?
- apache-spark - Spark --jars 选项添加的 jar 不起作用
- r - 如何在 RStudio 中为 R 包构建 API 文档?
- c# - 工人服务神秘地停止工作
- java - 向实体添加@Cachable 无效
- angular - 如何使我的登录组件成为登录页面