Я создал собственный тип записи для своей темы и хочу, чтобы содержимое отображалось так же, как обычное сообщение на странице указателя.
Мой код на index.php выглядит так
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<div class="container">
<?php
if( have_posts() ):
while( have_posts() ): the_post();
get_template_part( 'template-parts/content', get_post_format() );endwhile;
endif;
?>
</div><!-- .container -->
</main>
</div><!-- #primary -->
У меня есть разные стили для каждого формата записи, и он сохраняется в content- «post-format-name» .php. Но если я сохраню сообщение в своем пользовательском типе сообщения в формате «Стандартный», оно все равно не появится.
Есть идеи, как я могу это исправить? Спасибо!
По умолчанию только сообщения извлекаются из базы данных с помощью основного запроса, и регистрация пользовательского типа сообщения ничего не меняет в этом.
В соответствии с документация ты должен зацепиться за pre_get_posts
действие как это
// Show posts of 'post', 'page' and 'movie' post types on home page
add_action( 'pre_get_posts', 'add_my_post_types_to_query' );
function add_my_post_types_to_query( $query ) {
if ( is_home() && $query->is_main_query() )
$query->set( 'post_type', array( 'post', 'page', 'movie' ) );
return $query;
}
Ваша проблема со стандартным форматом записи заключается в том, что get_post_format
функция возвращает FALSE
для формата по умолчанию (документация). Вы должны использовать оператор if для очистки этого случая.
Других решений пока нет …