Задать вопрос
@SongaerDev

Почему хук publish_post срабатывает 2 раза?

Всем привет! Стоит задача при публикации поста (только при публикации, при обновлении и прочем не нужно ничего делать) создавать соответствующую ветку на форуме. Для этого использую хук publish_post. Все работает, но проблема в том, что хук почему то срабатывает 2 раза и тема добавляется тоже 2 раза. Кто знает, как решить данную проблему? Заранее спасибо за помощь! Код:
function add_new_topic( $ID, $post ) {
  $topic_id = bbp_insert_topic(
    array(
      'post_parent'  => 3761,
      'post_title'   => 'topic_title2',
      'post_content' => 'topic_content2'
    ),
    array( 'forum_id'  => 3761 )
  );
}
add_action( 'post_publish', 'add_new_topic', 10, 2 );
  • Вопрос задан
  • 114 просмотров
Подписаться 2 Средний Комментировать
Решения вопроса 1
cesnokov
@cesnokov
<head>&nbsp;</head>
Вроде потому, что вначале срабатывает "Auto save draft" а потом "Publish".
Пробуйте привязаться к transition_post_status.

function add_new_topic( $new_status, $old_status, $post ) {
   if ( $new_status === 'publish' && $old_status !== 'publish' ) {
      ...
   }
}
add_action( 'transition_post_status', 'add_new_topic', 10, 3 );
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы