Как поменять значение произвольного поля для всех записей WordPress

Admin PHP, WordPress

Функция для изменения значения произвольного поля для всех записей разом.

Функцию надо поместить в код страницы шаблона сайта на WordPress, а затем загрузить эту страницу. Например, положить этот код в файл single.php, а затем обновить любую страницу сайта со статьёй.

$args = array(
    'posts_per_page' => 1000,
    'post_type' => 'post'
    );
$the_query = new WP_Query( $args );

if ( $the_query->have_posts() ) {
    while ( $the_query->have_posts() ) {
        $the_query->the_post();
        $new_meta = 1;
        update_post_meta($post->ID, 'single_meta', $new_meta);
    }
}

Переменная $new_meta — отвечает за значение, на которое будет изменены произвольные поля всех записей.

single_meta — это то произвольное поле, значения в котором требуется поменять.

Кстати, на сайте нет рекламы. У сайта нет цели самоокупаться, но если вам пригодилась информация можете задонатить мне на чашечку кофе в макдаке. Лайкнуть страницу или просто поблагодарить. Карма вам зачтется.

Комментарии к статье “Как поменять значение произвольного поля для всех записей WordPress” (4)

    • Admin
      Admin
      Автор записи
      19.01.2019 в 16:40

      В статье написано, даже файл указан. Если это вам ни о чем не говорит, то лучше ничего не трогать.

  • Аватар
    Макс
    05.04.2021 в 12:11

    Код сработал, но только на первые 1000 постов, пробовал поставить ‘posts_per_page’ => 3000, код работать вообще перестал, хотя на сайте 3229 записей. Что делать?

    • Admin
      Admin
      Автор записи
      06.04.2021 в 12:45

      Может не хватать времени для обработки всех запросов.

      Измените этот участок:

      $args = array(
          'posts_per_page' => 1000,
          'post_type' => 'post'
          );

      на такой:

      $args = [
          'posts_per_page' => 1000,
          'post_type' => 'post'

          'meta_query' => [
              [
                  'key'     => 'название произвольного поля',
                  'value'   => 'новое значение поля',
                  'compare' => '!=',
              ],
          ],
      ];

      Мы говорим коду изменить только те записи, которые еще не были изменены.

      Запустить код несколько раз.

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи:
"Как поменять значение произвольного поля для всех записей WordPress"