Intereting Posts
Общее количество авторов с несколькими сообщениями Создание настраиваемого поля с помощью SQL-запроса Решение для управления изменениями для сайта на базе BP? Измените правило, что wp-login.php? Action = register оставлен в покое Назначить тип сообщения многим пользователям Если wordpress не имеет содержимого, измените его на черновик Как защитить пароль страницы / сообщения, чтобы вы каждый раз возвращались каждый раз, когда посещаете страницу? Изменения API пользовательской настройки темы не сохраняются Величина значения поля ввода формы ввода-вывода ninja forms 3 Вставить короткий код между '<div>' Количество сообщений за пост-тип за последний месяц / неделю У меня есть пользовательский тип сообщения с пользовательской таксономией. Но не найдена страница таксономии .. Предложение для плагина Calendar Events Ограничивает ли WordPress длину названий slug для сообщений Meta или терминов? WPAlchemy: Как выводить значения?

Определите, является ли идентификатор страницей или отправляется и запрашивает идентификатор

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

Это работает для Pages:

query_posts('page=' . $featured_tab); 

Это работает или сообщений:

  query_posts('p=' . $featured_tab); 

Это скажет мне, если $ featured_tag ​​- это сообщение или страница:

  get_post_type( $featured_tab ) 

Но это не работает

  foreach ( $featarr as $featured_tab ) { if (get_post_type( $featured_tab ) == 'page') { $featured_tab_type = 'page='; } elseif (get_post_type( $featured_tab ) == 'post') { $featured_tab_type = 'p='; } query_posts($featured_tab_type . $featured_tab); while (have_posts()) : the_post(); Echo 'stuff here'; 

Проблема, с которой я столкнулась, состоит в том, что … переменная $ featured_tag ​​представляет назначенный идентификатор страницы / сообщения, который отображается на странице.

Таким образом, я питаюсь строкой id, т. Е. 34,543,2432,355 … и т. Д. Затем берут каждый id как $ featured_tab и запрос для заголовка, признанной страницы и выдержки.

Затем я показываю все идентификаторы страницы / сообщения в таблице с тремя столбцами.

Эта работа идеальна, но только если я запрашиваю одно или другое, но не так, как я делаю в инструкции if, если post use p = или страница page page =.

Когда я использую условие if, получаем сумасшедшие результаты здесь, если есть 9 идентификаторов, я получаю 50+ результатов … отображаются дубликаты и публикуются только сообщения без страницы.

Solutions Collecting From Web of "Определите, является ли идентификатор страницей или отправляется и запрашивает идентификатор"

Вам не нужно определять, какой тип он запрашивает, вам просто нужно установить правильные аргументы для переопределения значений по умолчанию. Во-первых, мы будем использовать WP_Query для выполнения дополнительных запросов вместо query_posts .

Если мы зададим только аргумент p , post_type умолчанию, чтобы мы не получили никаких страниц:

 $query = new WP_Query( array( 'p' => 13 ) ); 

Если мы просто добавим post_type и post_type его на any , мы получим любой пост ID 13, будь то сообщение, страница, вложение и т. Д.

 $query = new WP_Query( array( 'post_type' => 'any', 'p' => 13 ) ); 

Если у вас есть идентификаторы сообщений и их нужно запросить, вы можете избавиться от цикла foreach и просто сделать один запрос для всех сообщений сразу с аргументом post__in :

 $query = new WP_Query( array( 'post_type' => 'any', 'post__in' => array( 1, 2, 13, 42 ) ) ); 

Хорошо понял:

 query_posts(array ( 'p' => $featured_tab, 'post_type' => array('post', 'page'), ) ); 

тогда как $ featured_tab – это идентификатор, который вы запрашиваете.