Как вызвать страницу или пост в WordPress? - PullRequest
0 голосов
/ 26 марта 2020

Я хочу, чтобы на странице категории отображалась определенная страница (или сообщение), если в категории нет сообщений. Как это можно сделать?

Пока я выяснил, что это зависит от индекса. 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 -->

1 Ответ

0 голосов
/ 26 марта 2020

Страница категории должна отображаться из указанного файла category.php или более (см .: https://developer.wordpress.org/files/2014/10/wp-hierarchy.png).

Вы можете отобразить некоторое содержимое файла в файле category.php, используя require() функция.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...