2015-10-14 5 views
0

У меня есть код для изменения мета-значения периодически с помощью cronjob. Эта треска находится вне wordpress. Он обновляет только первые 8 продуктов.Обновление Wordpress-запроса, не обновляющее все сообщения

$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

Установлен ли ваш WordPress для отображения восьми сообщений на странице, возможно? Вы, вероятно, хотите добавить 'posts_per_page'=>-1 в массив аргументов, так что цикл будет проходить через них все ...

(я предполагаю, что ваш $new_value просто пример заполнитель, и что вы знаете, что это не будет интерполировать одинарные кавычки, как и другие люди, упомянутые ...)

+0

Благодарим вас за ответ. Он работал очень хорошо. Как вы сказали, это был просто пример места. Но я видел, что мне нужно больше запросов, когда я копаю проект. Могу ли я изменить это значение на «$ data * _regular_price», где _sale_price = 10? –

-1

вы можете попытаться изменить $ арг с

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

P.S Я не проверял это;

1

В коде update_post_meta(get_the_ID(), "_regular_price", '$new_value');

$new_value внутри одинарные кавычки, PHP обыкновение рассматривать его как переменную. Он должен быть в двойных кавычках, так что php переводит эту переменную, а затем ваша функция обновления должна работать должным образом.

0

Попробуйте это:

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

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

endwhile; 

Вы должны Двойной Цитата$new_value.

0

Пожалуйста, попробуйте следующее:

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

posts_per_page => -1 обозначает все сообщения.

Смежные вопросы