Intereting Posts
Шаблон страницы CSS-файл не загружается Загружать прикрепленные изображения на одном сайте страницы с помощью fancybox Как создать мета-поле, которое можно повторить? (с разделом изображения и текстовой областью) Как я могу добавить классы HTML для текущей таксономии / иерархии терминов на мои страницы, чтобы упростить стили? Как перенаправить страницу WordPress Тип сообщения PostScript WordPress и сортировка по тегам Создать новый сайт (многоуровневый); не может получить субдомен для работы Как переименовать «Опубликовать» название метабокса в почтовом экране Запрос WordPress Mysql и дубликат Перенаправление на страницу после отправки формы виджетов Переадресация страницы Действие wp_before_admin_bar_render не работает в бэк-офисе используя wp_tag_cloud с пользовательской таксономией скрыть / защитить оригинальные полноразмерные изображения Как найти сообщение с использованием XML-RPC без знания идентификатора

Верните только сообщения, которые имеют post_excerpt

Я хотел бы получить случайный пост, но только тот, у которого есть отрыв. Есть ли способ, которым я могу запросить это во время вызова get_posts() или wp_query() ?

Бонусные очки, если бы я мог сделать это с помощью REST, я исследовал этот маршрут и снова оказался на get_posts() .

Что-то в этих строках должно работать, а не проверяться на синтаксические ошибки, хотя

  function random_post() { $args = array( 'post_type' => 'post', 'orderby' => 'rand', 'posts_per_page' => 1, ); $post = query_posts( $args ); } if(!$post->post_excerpt){ random_post(); } // Then down here you would do whatever with the $post object 

следующий код проверяет, есть ли отрывок записи:

 if ( has_excerpt( $post->ID ) ) { // This post has excerpt } else { // This post has no excerpt } 

Следующий код вернет 1 запись, в которой будет выдержка:

 function get_random_post_by_excerpt($post_type){ global $wpdb; $id_post = $wpdb->get_var($wpdb->prepare("SELECT $wpdb->posts.ID FROM $wpdb->posts WHERE $wpdb->posts.post_type = '%s' AND $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_excerpt != '' ORDER BY RAND();", $post_type)); return $id_post = (!empty($id_post))?$id_post:false; } 

функция вызова:

 $post_id = get_random_post_by_excerpt('post');