или заставить считать что attachment == single
Модератор
Yuri
(@yube)
аттач не single
, но singular
is_single вроде работает на основе информации в базе данных. Тогда как на информацию в базе данных может влиять как выводится эта информация?
В ядре
wp-includes/template-loader.php
обнаружился такой код
if ( defined('WP_USE_THEMES') && WP_USE_THEMES ) :
$template = false;
if ( is_embed() && $template = get_embed_template() ) :
elseif ( is_404() && $template = get_404_template() ) :
elseif ( is_search() && $template = get_search_template() ) :
elseif ( is_front_page() && $template = get_front_page_template() ) :
elseif ( is_home() && $template = get_home_template() ) :
elseif ( is_post_type_archive() && $template = get_post_type_archive_template() ) :
elseif ( is_tax() && $template = get_taxonomy_template() ) :
elseif ( is_attachment() && $template = get_attachment_template() ) :
remove_filter('the_content', 'prepend_attachment');
1.Это относится именно к файлам single.php attachment.phph и тд?
2. Какой смысл со страниц вложения убирать сами вложения?
(если закомментировать последнию строчку, то проблема разници в работе single.php и attachment.php при одинаковом коде исчезает.
is_single вроде работает на основе информации в базе данных. Тогда как на информацию в базе данных может влиять как выводится эта информация?
Три раза перечитал. Не уловил в чем суть)
Можно ли как то «передавать» вывод из attachment.php на single.php так чтобы is_single был true?
Не знаю зачем, но, вероятно, с помощью фильтра template_include.
Предполагаю, что примерно так:
add_filter( 'template_include', 'attachment_to_single', 99 );
function attachment_to_single( $template ) {
if ( is_attachment() ) {
if ( $new_template = locate_template( 'single.php' ) ) {
$template = $new_template;
}
}
return $template;
}
Работает на основе: WP_Query::is_single()
т.е. это запрос в базу данных. и вытаскивание оттуда информации? или как?
т.е. это запрос в базу данных. и вытаскивание оттуда информации? или как?
Тип записи как и все остальные данные записей хранятся в базе данных. Поэтому на каком это из этапов загрузки страницы они в любом случае запросятся из неё.