我有一个代码可以使用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;
如何更改所有后置元值?
答案 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我没有测试过这个;