Я хочу, чтобы на странице категории отображалась определенная страница (или сообщение), если в категории нет сообщений. Как это можно сделать?
Пока я выяснил, что это зависит от индекса. php файла. Я создал новый файл index. php под шаблоном theme-child. Я могу сделать так, чтобы оно показывало обычное текстовое сообщение типа «в настоящее время нет сообщений в этой категории», но вместо этого я хочу, чтобы оно отображало определенную c страницу (или сообщение).
Что мне делать в этом PHP файле? Выглядит это следующим образом:
<?php get_header(); ?>
<?php if( is_home() && ! is_paged() ) : ?>
<?php if( pinboard_get_option( 'slider' ) ) : ?>
<?php get_template_part( 'slider' ); ?>
<?php endif; ?>
<?php get_sidebar( 'wide' ); ?>
<?php get_sidebar( 'boxes' ); ?>
<?php elseif( ( is_home() && is_paged() ) || ( ! is_home() && pinboard_get_option( 'location' ) ) ) : ?>
<?php pinboard_current_location(); ?>
<?php endif; ?>
<div id="container">
<section id="content" <?php pinboard_content_class(); ?>>
<?php if( is_category( pinboard_get_option( 'portfolio_cat' ) ) || ( is_category() && cat_is_ancestor_of( pinboard_get_option( 'portfolio_cat' ), get_queried_object() ) ) ) : ?>
<?php pinboard_category_filter( pinboard_get_option( 'portfolio_cat' ) ); ?>
<?php endif; ?>
<?php if( have_posts() ) : ?>
<div class="entries">
<?php while( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', get_post_format() ); ?>
<?php endwhile; ?>
</div><!-- .entries -->
<?php pinboard_posts_nav(); ?>
<?php else : ?>
<?php get_post ("page-id-2364"); ?> //this doesn't work!
<?php endif; ?>
</section><!-- #content -->
<?php if( 'no-sidebars' != pinboard_get_option( 'layout' ) && 'full-width' != pinboard_get_option( 'layout' ) && ! is_category( pinboard_get_option( 'portfolio_cat' ) ) && ! ( is_category() && cat_is_ancestor_of( pinboard_get_option( 'portfolio_cat' ), get_queried_object() ) ) ) : ?>
<?php get_sidebar(); ?>
<?php endif; ?>
<div class="clear"></div>
</div><!-- #container -->
Внесены некоторые изменения в код согласно статье https://developer.wordpress.org/reference/classes/wp_query/, но безуспешно. :( Я определенно скучаю по чему-то очень фундаментальному, но что?
<?php get_header(); ?>
<?php if( is_home() && ! is_paged() ) : ?>
<?php if( pinboard_get_option( 'slider' ) ) : ?>
<?php get_template_part( 'slider' ); ?>
<?php endif; ?>
<?php get_sidebar( 'wide' ); ?>
<?php get_sidebar( 'boxes' ); ?>
<?php elseif( ( is_home() && is_paged() ) || ( ! is_home() && pinboard_get_option( 'location' ) ) ) : ?>
<?php pinboard_current_location(); ?>
<?php endif; ?>
<div id="container">
<section id="content" <?php pinboard_content_class(); ?>>
<?php if( is_category( pinboard_get_option( 'portfolio_cat' ) ) || ( is_category() && cat_is_ancestor_of( pinboard_get_option( 'portfolio_cat' ), get_queried_object() ) ) ) : ?>
<?php pinboard_category_filter( pinboard_get_option( 'portfolio_cat' ) ); ?>
<?php endif; ?>
<?php if( have_posts() ) : ?>
<div class="entries">
<?php while( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', get_post_format() ); ?>
<?php endwhile; ?>
</div><!-- .entries -->
<?php pinboard_posts_nav(); ?>
<?php else : ?>
<?php $query = new WP_Query( array( 'page_id' => 2364 ) ); ?> //still doesn't work
<?php endif; ?>
</section><!-- #content -->
<?php if( 'no-sidebars' != pinboard_get_option( 'layout' ) && 'full-width' != pinboard_get_option( 'layout' ) && ! is_category( pinboard_get_option( 'portfolio_cat' ) ) && ! ( is_category() && cat_is_ancestor_of( pinboard_get_option( 'portfolio_cat' ), get_queried_object() ) ) ) : ?>
<?php get_sidebar(); ?>
<?php endif; ?>
<div class="clear"></div>
</div><!-- #container -->