我刚刚为特定post_type
添加了自定义字段。让我们说帖子类型是" Book"。
我想使用post_id
Book为每个post_type
插入数据库的默认值0。
基本上我需要使用post_id
,post_id
添加post_id
,meta_key
和meta_value
到postmeta表。
一些伪插入语句可能如下所示:
INSERT INTO postmeta WHERE (post_type = "Book" FROM other_table GET post_id) post_id = post_id, meta_key = newfield, meta_value = 0
另一种解决方案可能是改变我在wordpress中查询帖子的方式:
目前,当我使用meta_key参数进行查询时,只会提取已填写特定meta_key的帖子。有没有办法显示也没有这个meta_key的帖子?我需要它来对具有meta_key的帖子进行排序。
编辑:
我在wp数据库中试过这个:
INSERT INTO wp_postmeta(`post_id`,`meta_key`,`meta_value`) VALUES((SELECT ID FROM wp_posts tb WHERE tb.post_type = 'support'),'category_order','0')
这基本上是我想要做的,除了它应该允许多个值。它目前没有。
答案 0 :(得分:2)
过去我必须做这样的工作,我坚持使用Wordpress Foundations。在向帖子添加数据时,我会远离SQL。
基本上我做了一个页面模板,在里面我只是循环帖子并使用update_post_meta,如下所示:
<?php
$args = array(
'post_type'=> 'book',
);
query_posts( $args );
// the Loop
while (have_posts()) : the_post();
//update the post meta, while looping
update_post_meta($post->ID, 'fieldname', 0);
endwhile;
?>
刚刚测试了代码,它正在运行。