检查WordPress的文章类别-只在主页面中留下文章,使用PHP从其他页面中删除

bqucvtff  于 2022-12-17  发布在  PHP
关注(0)|答案(1)|浏览(111)

我正在尝试执行这个:我在多个catogories的职位,一个类别是所有职位的共同,这是“业务”类别,所有其他人都是无关紧要的,所以我想删除所有职位是在“业务”类别从所有其他类别。我创建了这个代码:

<?php
$posts = get_posts(array(
    'category' => 'Business',
));

foreach($posts as $post) {

    $categories = wp_get_post_categories($post->ID);

    if (in_array('Business', $categories) && count($categories) > 1) {
        wp_set_post_categories($post->ID, array(
            'Business',
        ));
    }
}

这段代码应该通过所有职位在“商务”类别,并为任何职位不仅是在“商务”类别-该职位应该从所有其他类别中删除,除了“商务”。但是...代码不工作,出于某种原因。没有PHP错误,只是-不工作。
任何帮助...

0md85ypi

0md85ypi1#

这是工作代码,检查类别内的所有职位,使用类别ID,如果发现职位是在目标类别,但也-他们在其他类别以及-从所有其他类别中删除职位,除了目标类别:在实施例中,猫ID是6:

<?php
    function remove_posts_from_other_categories_retroactively() {
    
      $posts = get_posts(array('category' => 6, 'numberposts' => -1));
      
      foreach ($posts as $post) {
        wp_set_post_categories($post->ID, array(6));
      }
    }
    
    add_action('plugins_loaded', 'remove_posts_from_other_categories_retroactively');

相关问题