PRO IT

профессиональное мнение

  • IT
    • Android
    • IP телефония
    • Linux
    • Mac OS X
    • Железо
    • Интернет
    • Программирование
    • Софт
  • Бизнес
  • WOW!
  • Литература
    • Аудиокниги
    • Книги
    • Публикации
  • Музыка
  • Сервисы
    • Генератор паролей Онлайн
    • Код ответа сервера
    • Количество символов в тексте
  • О блоге
    • Написать автору
    • Как написать гостевой пост в блоге ablex.ru ?
    • Реклама в блоге
  • IT
    • Android
    • IP телефония
    • Linux
    • Mac OS X
    • Telegram
    • Железо
    • Интернет
    • Программирование
    • Софт
  • WOW!
  • Бизнес
  • Литература
    • Аудиокниги
    • Книги
    • Публикации
  • Музыка
  • Сервисы
    • Аналитика
      • Анализ сайтов
      • Скорость сайта
    • Дизайн
    • Продвижение
      • СЕО
        • СЕО анализ сайта
      • СММ
    • Разработка
  • События
  • Юмор
PRO IT Программирование WordPress не записывает значения таксономий при запуске скрипта через cron


WordPress не записывает значения таксономий при запуске скрипта через cron

Ablex · Мар 29, 2014 · 0 комментариев
WordPress Taxonomy

Если нужно из стороннего источника  формировать посты в базе WordPress, чаще всего это делается с помощью функции wp_insert_post.  Отладив программу, запуская ее через web-интерфейс админки, я столкнулся с проблемой, что посты записываются не верно, используя запуск через cron. А именно: не записываются таксономии. Т.е., например, нет возможности задать категорию поста. В этом посте о простом способе решении этой проблемы.

Для записи поста я использовал похожий код:

1
2
3
4
5
6
7
8
9
10
11
12
13
$args = array(
  'comment_status'  => 'closed',
  'ping_status'     => 'closed',
  'post_author'     => 1,
  'post_content'    => $content,
  'post_status'     => 'publish',
  'post_title'      => $title,
  'post_type'       => 'movie',
  'tax_input'       => array(
    'genre' => array('term1', 'term2', 'term3')
  )
);
$wp_movie_id = wp_insert_post($args);

Который отлично работал в web-интерфейсе, но не работал при запуске, через cron. Долго искал решение проблемы и наткнулся на приведенную ниже статью. Там говорится, что для записи таксономий, через функцию  wp_insert_post у cron не хватает прав. Странно, я пробовал запуск скрипта и под root — ситуация та же. Но решение проблемы есть, и оно довольно простое.

Решение проблемы заключается в использовании функции wp_set_object_terms для работы с таксономией. Т.е., после создания записи, и получения ее ID в $wp_movie_id (как в предыдущем примере), мы прикрипляем запись к элементу таксономии таким образом:

1
wp_set_object_terms( $wp_movie_id, $terms, $taxonomy);

где:

$wp_movie_id — ID записи, которой нужно присвоить элемент таксономии;
$terms — Названия элеменов таксономии, для присвоения;
$taxonomy — таксономия (например, ‘category’ ).

После таких изменений в коде, скрипт прекрасно работает при запуске из командной строки и при вызове из cron.

Дополнительная информация:

WordPress taxonomy terms don’t insert when cron job executes wp_insert_post()

Поделиться "WordPress не записывает значения таксономий при запуске скрипта через cron"

  • Facebook
  • Twitter
  • Google+
  • LinkedIn
  • VKontakte
  • E-mail

Интересное по теме:

  • Wordpress WooCommerce: добавление категорий и товаров по API в каталогWordPress WooCommerce: добавление категорий и товаров по API в каталог
  • Вывод информации только на главной странице WordPressВывод информации только на главной странице WordPress
  • Изменение user-agent WordPressИзменение user-agent WordPress
  • Красивая форма подписки Mailchimp на сайт WordPressКрасивая форма подписки Mailchimp на сайт WordPress
Подпишитесь на рассылку
Метки: cron, taxonomy, wordpress

Ablex

Свежие записи

  • Удобный телеграм бот для поиска скидок и купонов @AllKuponBot
  • 6 главных трендов e-mail маркетинга в 2018 году
  • Magento 2.1: Добавление категорий и товаров по API
  • Анализ трафика CPA партнеров в Google Analytics. Борьба с фродом
  • WordPress WooCommerce: добавление категорий и товаров по API в каталог

Лучшие метки

Google AnalyticsаналитикаwordpressUbuntuAndroidAWStatsIP-телефонияSEORedmineMac OSсервисbluetoothVPNSIPRaspberry PiAsteriskА/Б тестIP-АТСgoogleCentOS

Авторы

  • Ablex (RSS) (200)
  • AD (RSS) (4)
  • TXT (RSS) (4)

Рекомендуем

  • Хостинг TimeWeb
  • IP телефония Zadarma
  • CPA сеть Admitad
Карта сайта
© 2010 - 2017 PRO IT. Все права защищены. Копирование материалов возможно только с установкой активной ссылки на ablex.ru
120 запрос 1,010 секунд. Этот блог летает на хостинге TimeWeb.
Разработка и поддержка RoiPoint
Top