Как получить заголовок и ссылку на случайную страницу, опубликованную сегодня, на платформе WordPress?

Как вывести заголовок и ссылку на случайную страницу с родительской страницей, у которой ID равен 22, и которая была опубликована сегодня?
  • 6 января 2024 г. 12:27
Ответы на вопрос 2
Для получения заголовка и ссылки на случайную страницу, опубликованную сегодня, на платформе WordPress, вы можете использовать WP_Query. Вот как это сделать на PHP в вашем WordPress теме или плагине:

```php
$args = array(
    'post_type' => 'page', // Тип поста - страница
    'orderby'   => 'rand', // Указываем случайный порядок
    'posts_per_page' => 1, // Получить только одну страницу
    'date_query' => array(
        array(
            'year'  => current_time('Y'), // Текущий год
            'month' => current_time('m'), // Текущий месяц
            'day'   => current_time('d'), // Текущий день
        ),
    ),
);

// WP_Query
$the_query = new WP_Query($args);

// Цикл
if ($the_query->have_posts()) {
    while ($the_query->have_posts()) {
        $the_query->the_post();
        echo '<a href="' . get_the_permalink() . '">' . get_the_title() . '</a>';
    }
} else {
    // Не найдено страниц, опубликованных сегодня
}

// Сброс основного запроса
wp_reset_postdata();
```

Для получения страниц с родительской страницей ID 22, вы можете добавить параметр 'post_parent' в ваш запрос:

```php
$args = array(
    'post_type' => 'page',
    'orderby'   => 'rand',
    'posts_per_page' => 1,
    'post_parent' => 22, // ID родительской страницы
    'date_query' => array(
        array(
            'year'  => current_time('Y'),
            'month' => current_time('m'),
            'day'   => current_time('d'),
        ),
    ),
);

$the_query = new WP_Query($args);

if ($the_query->have_posts()) {
    while ($the_query->have_posts()) {
        $the_query->the_post();
        echo '<a href="' . get_the_permalink() . '">' . get_the_title() . '</a>';
    }
} else {
    // Не найдено страниц с заданным родителем, опубликованных сегодня
}

wp_reset_postdata();
```

Убедитесь, что вставляете этот код в соответствующее место вашей темы WordPress (например, в собственный шорткод, виджет или шаблон страницы) и что вы правильно обрабатываете доступ к глобальным переменным, если это необходимо.

Обратите внимание, что фильтрация по дате будет работать лишь до того момента, пока ваш сайт настроен на правильный часовой пояс в настройках WordPress, и функция `current_time()` использует настройки WordPress для определения текущего времени.
get_posts с требуемыми критериями
Похожие вопросы