将自定义域添加到特定类别的所有帖子

时间:2013-02-09 作者:AKNL

我想向特定类别(摄影,类别ID为5)中的所有帖子批量添加一个具有值(摄影)的自定义字段(类别)。

我已经使用下面的代码向所有帖子批量添加了一个自定义字段,但如何将其缩小到特定类别?任何人

这是我在所有帖子中使用的代码:

INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT wp_posts.ID, \'category\', \'photography\'
FROM wp_posts
WHERE wp_posts.post_status = \'publish\'

1 个回复
最合适的回答,由SO网友:Wyck 整理而成

您可以使用WordPress函数来执行此操作,只需运行一次,一个快速的示例就是。

function wpse_85236_add_photo_field(){

global $post;
$photoquery = new WP_Query(\'posts_per_page=-1\');

while ( $photoquery->have_posts() ) : $photoquery->the_post();

    if ( in_category( \'photography\' )) {
    add_post_meta($post->ID, \'category\', \'photography\', true);
    }

endwhile;
}
add_action( \'init\', \'wpse_85236_add_photo_field\' );
记住在函数运行后删除它,因为您不希望它在每次加载时都运行。

结束

相关推荐

Get_Query_var()在Pre_Get_Posts中不起作用

我正在使用pre_get_posts 钩子可以使用自定义元值对所有自定义帖子类型/分类页面上的主查询进行排序。作为逻辑的一部分,我试图通过使用get_query_var(\'taxonomy\'), 但是,无论我尝试什么,它都会不断返回一个空白字符串:function sort_query($query) ... if (is_tax()){ ... echo get_query_var(\'taxonomy\'); // E