Поддержка Проблемы и решения Вопрос по будущим постам

  • Раньше, чтобы зайти в пост с будущей датой, использовал такой хук:

    remove_action('future_post', '_future_post_hook');
    
    add_filter( 'wp_insert_post_data', 'futurenow_do_not_set_posts_to_future' );
    
    function futurenow_do_not_set_posts_to_future( $data ) {
        if ( $data['post_status'] == 'future' && $data['post_type'] == 'post' )
            $data['post_status'] = 'publish';
        return $data;
    }

    Попробовал удалить этот хук и возможность зайти в пост сохраняется. В этом плане были какие-то обновления в WordPress?
    WordPress обновлен до версии 5.1.

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

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

    wp_insert_post_data срабатывает при сохранении записи, поэтому вряд ли что-то изменится в БД, если просто удалить код. Вероятно, надо вручную менять post_status на future.

    Для предварительного просмотра записей попробуйте плагин Public Post Preview.

    Автор dmitriy88

    (@dmitriy88)

    Спасибо за разъяснение. Теперь все понятно.
    А какой вообще вывод будущих постов предпочтительнее, хук в functions.php или в WP_Query использовать статус future?

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    в WP_Query использовать статус future?

    Никогда не пробовал выводить будущие записи, но я бы выбрал этот, т.к. он не вносит никаких изменений в БД и его легко модифицировать в будущем.

    Автор dmitriy88

    (@dmitriy88)

    в WP_Query использовать статус future?

    Все-таки такой способ не подходит, попробовал я его. Постоянные ссылки для будущих постов имеют вид /?p=123, несмотря на настройки, и в них обычному пользователю попасть нельзя, 404-я ошибка.
    Получается, что хук остается единственным способом публикации.

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    в них обычному пользователю попасть нельзя, 404-я ошибка.

    Что вполне логично, так как эти записи ещё не опубликованы.

    Получается, что хук остается единственным способом публикации.

    Сомневаюсь. В WP очень много хуков и почти всегда удается найти нужный. Тот же Public Post Preview как-то же показывает неопубликованные записи без изменения статуса БД, поэтому, вероятно, текущий способ не единственный.

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Тема «Вопрос по будущим постам» закрыта для новых ответов.