WP term_exists и wp_insert_term выдают - PullRequest
0 голосов
/ 20 ноября 2018

Может быть, я пытаюсь заново изобрести колесо, но моя проблема в том, что мне нужно проверить, существует ли пользовательский термин таксономии, если нет, вставить этот термин, а затем взять term_taxonomy_id вставленного термина и присвоить его переменной.Эта переменная позже используется для назначения терминов для публикации, которые будут вставлены программно.Мне нужно выполнить все эти задачи в одной функции, потому что все это выполняется через wp_cron.На данный момент я попытался запустить этот скрипт из functions.php, а также из плагина - в результате добавляются те же термины, но слишком поздно, чтобы захватить term_taxonomy_id.Если я запускаю эту функцию, когда термины уже есть в базе данных, то, конечно, все работает ...

for ( $i = 0; $i < $count; $i++ ) {
    if ( empty( term_exists( $fast_new_categories[ $i ], 'fast-news-categories' ) ) ) {
        $x = $fast_new_categories[ $i ];
        add_action(
            'init',
            function () use ( &$x ) {
                wp_insert_term( $x, 'fast-news-categories', array( 'parent' => 0 ) );
            }
        );
    }
    $fast_news_term[] = term_exists( $fast_new_categories[ $i ], 'fast-news-categories', 0 );
}

Моя последовательность задач wp_cron:

  • Я собираю данные постов из API;
  • Чем я перебираю его, и первое, что я пытаюсь сделать, - это проверить данные терминов для пользовательского таксономии;
  • Чем я создаю массив для публикации;Чем я вставляю посты;
  • Чем я назначаю термины пользовательской таксономии для только что вставленных постов - здесь мне нужен этот term_taxonomy_id из проверки терминов раньше.

Я понимаю, что могу выполнять term_exists () из функций.php, но я не могу запустить wp_insert_term () из него напрямую, поэтому я использую add_action с init hook, который запускается намного позже.

Может кто-нибудь помочь мне решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...