Так что это может показаться довольно мрачной вещью, но следуйте за мной здесь.
Я пытаюсь добавить немного логики через pre_get_posts
действие. Это весь объект WP_Query, данный мне. (см. конец)
Вещи, которые я рассмотрел, используя:
is_single()
- слишком широк.is_singular()
- слишком рано, чтобы использовать это, так какget_queried_object()
еще не установлено.$query->single
свойство - опять же слишком широк.$query->get('post_type')
- не установлено, так как используетname
свойство.
это name
действительно единственный показатель здесь?
WP_Query Object
(
[query] => Array
(
[page] =>
[name] => abcs-of-mental-health
)
[query_vars] => Array
(
[page] =>
[name] => abcs-of-mental-health
[error] =>
[m] => 0
[p] => 0
[post_parent] =>
[subpost] =>
[subpost_id] =>
[attachment] =>
[attachment_id] => 0
[static] =>
[pagename] =>
[page_id] => 0
[second] =>
[minute] =>
[hour] =>
[day] => 0
[monthnum] => 0
[year] => 0
[w] => 0
[category_name] =>
[tag] =>
[cat] =>
[tag_id] =>
[author_name] =>
[feed] =>
[tb] =>
[paged] => 0
[comments_popup] =>
[meta_key] =>
[meta_value] =>
[preview] =>
[s] =>
[sentence] =>
[fields] =>
[menu_order] =>
[category__in] => Array
(
)
[category__not_in] => Array
(
)
[category__and] => Array
(
)
[post__in] => Array
(
)
[post__not_in] => Array
(
)
[tag__in] => Array
(
)
[tag__not_in] => Array
(
)
[tag__and] => Array
(
)
[tag_slug__in] => Array
(
)
[tag_slug__and] => Array
(
)
[post_parent__in] => Array
(
)
[post_parent__not_in] => Array
(
)
)
[tax_query] =>
[meta_query] =>
[queried_object] =>
[queried_object_id] => 0
[post_count] => 0
[current_post] => -1
[in_the_loop] =>
[comment_count] => 0
[current_comment] => -1
[found_posts] => 0
[max_num_pages] => 0
[max_num_comment_pages] => 0
[is_single] => 1
[is_preview] =>
[is_page] =>
[is_archive] =>
[is_date] =>
[is_year] =>
[is_month] =>
[is_day] =>
[is_time] =>
[is_author] =>
[is_category] =>
[is_tag] =>
[is_tax] =>
[is_search] =>
[is_feed] =>
[is_comment_feed] =>
[is_trackback] =>
[is_home] =>
[is_404] =>
[is_comments_popup] =>
[is_paged] =>
[is_admin] =>
[is_attachment] =>
[is_singular] => 1
[is_robots] =>
[is_posts_page] =>
[is_post_type_archive] =>
[query_vars_hash] => f473ebf7f725c2627dc5fd9a1429f626
[query_vars_changed] =>
[thumbnails_cached] =>
)
pre_get_posts
(до запуска запроса)?is_page()
установлен лиpre_get_posts
уровень. Если это так, и я могу проверить,post_type
не установлен ли он в query_vars, я думаю, это так же хорошо, как и получается? Так сломан.is_page
кажется, установлен.Я не знаю, будет ли это полезно:
Используйте $ wp_query-> posts (array), чтобы проверить тип записи.
источник
$wp_query->posts
фактического заполнения переменной. Спасибо хоть!После некоторых тестов я вижу, что, к сожалению, невозможно получить тип сообщения cpt внутри
pre_get_posts
хука. Толькоis_page
работает, но не стандартный тип записи, ни CPT могут быть восстановлены там.Если у вас есть только страница и пост (без CPT) чек на
is_single()
сtrue
как средством реагирования на этот пост типа пост, потому что возвращать ложь страниц.Если у вас есть CPT, боюсь, вам придется выполнить дополнительный запрос . Самое простое, что я могу подумать, это просто получить
post_type
столбец, в котором публикуется статус публикации, а post_name является обязательным (пропуская ревизии):Если вы хотите проверить определенный тип записи, вы можете написать пользовательский условный тег, который будет просто считать строки с заданным post_type и заданным именем:
Конечно, это необходимо
pre_get_post
в любом последующем хуке, который вы можете использоватьget_post_type()
...источник
Это то, что я использую, хотя это специализировано для моей собственной структуры каталогов.
Пробег может отличаться. Биты strpos, где я проверяю, что файлы находятся в одном каталоге, но не в другом, должны быть изменены для вашей сборки и, вероятно, могут быть пересмотрены более эффективно. Они существуют, чтобы вырезать результаты выше и ниже определенной структуры каталогов.
Запуск thelist () в нижнем колонтитуле даст вам нумерованный список каждого файла шаблона .php, использованного для компиляции текущего представления. Это особенно полезно при работе с дочерней темой, которая выводит загадочный компонент.
источник