Wordpress查询更新未更新所有帖子

时间:2015-10-14 11:12:41

标签: php mysql wordpress metadata

我有一个代码可以使用cronjob定期更改元值。这个鳕鱼不在wordpress。它仅更新前8个产品。

$args = array(
    'post_type' => 'product',
    'post_status' => 'publish',
    'meta_key' => '_sale_price',
);

$the_query = new WP_Query($args);

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

    update_post_meta(get_the_ID(), "_regular_price", '$new_value');

endwhile;

如何更改所有后置元值?

5 个答案:

答案 0 :(得分:1)

在您的代码update_post_meta(get_the_ID(), "_regular_price", '$new_value');

$new_value在单引号内,php不会将其视为变量。它应该是双引号,以便php转换该变量,然后您的更新函数应该按预期工作。

答案 1 :(得分:0)

试试这个:

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

    update_post_meta(get_the_ID(), "_regular_price", "$new_value");

endwhile;
  

您需要双重报价 $new_value

答案 2 :(得分:0)

你的WordPress安装是否配置为每页显示8个帖子,是吗?您可能希望将'posts_per_page'=>-1添加到您的参数数组中,以便循环将遍历所有...

(我假设您的$new_value只是一个示例占位符,并且您知道它不会在单引号之间进行插值,正如其他人提到的那样......)

答案 3 :(得分:0)

请试试这个:

Build,Execution, Deployment > Debugger

posts_per_page => -1代表所有帖子。

答案 4 :(得分:-1)

您可以尝试使用

更改$ args
$args = array(
    'post_type' => 'product',      
);

P.S我没有测试过这个;