在全宽页面上强制使用边栏

时间:2020-03-09 作者:michael2000

有没有WP主题编辑器php专家?所以我使用了一个主题,它允许我将所有页面强制为全宽。我有一万多页。这也迫使我的帖子全宽。我很确定我可以编辑single.php 并强制显示右侧边栏,但我很难这样做。非常感谢您的帮助。这是我的single.php 文件

最终的结果是,只有我的帖子有右侧边栏,而不是我已经全宽的页面。

提前感谢!

<?php
/**
 * The Template for displaying all single posts.
 *
 * @package zerif
 */

    get_header();

    $sidebar_layout = apply_filters( \'zerif_sidebar_layout\', get_theme_mod( \'zerif_blog_sidebar_layout\', \'sidebar-right\' ) );
    $wrapper_class  = \'content-left-wrap col-md-9\';

if ( \'full-width\' === $sidebar_layout ) {
    $wrapper_class = \'content-left-wrap col-md-12\';
}
?>
    <div class="clear"></div>
</header> <!-- / END HOME SECTION  -->
<?php
zerif_after_header_trigger();

if ( apply_filters( \'zerif_display_area_filter\', true, \'single\' ) ) {
    $zerif_change_to_full_width = get_theme_mod( \'zerif_change_to_full_width\' );
    ?>
    <div id="content" class="site-content">
        <div class="container">
            <?php
            zerif_before_single_post_trigger();

            if ( $sidebar_layout === \'sidebar-right\' && empty( $zerif_change_to_full_width ) || is_singular(\'post\')) {
    zerif_sidebar_trigger();
}
            if(is_singular(\'post\')){
    echo \'<div class="content-left-wrap col-md-9">\';
}elseif ( ! empty( $zerif_change_to_full_width ) || \'full-width\' === $wrapper_class ) {
    echo \'<div class="content-left-wrap col-md-12">\';
} else {
    echo \'<div class="content-left-wrap col-md-9">\';
}

            ?>
            <?php zerif_top_single_post_trigger(); ?>
            <div id="primary" class="content-area">
                <main itemscope itemtype="http://schema.org/WebPageElement" itemprop="mainContentOfPage" id="main" class="site-main">
                    <?php
                    while ( have_posts() ) {
                        the_post();
                        get_template_part( \'content\', \'single\' );
                        zerif_post_nav();
                        /* If comments are open or we have at least one comment, load up the comment template */
                        if ( comments_open() || \'0\' != get_comments_number() ) {
                            comments_template( \'\' );
                        }
                    }
                    ?>
                </main><!-- #main -->
            </div><!-- #primary -->
            <?php zerif_bottom_single_post_trigger(); ?>
        </div><!-- .content-left-wrap -->
        <?php
        zerif_after_single_post_trigger();

        if ( $sidebar_layout === \'sidebar-right\' && empty( $zerif_change_to_full_width ) ) {
            zerif_sidebar_trigger();
        }
        ?>
    </div><!-- .container -->
    </div>
    <?php
}
get_footer(); ?>

1 个回复
SO网友:RiddleMeThis

我不确定这是否会在没有看到主题的情况下起作用,但你可以尝试这样的方式。。。

改变

if ( $sidebar_layout === \'sidebar-left\' && empty( $zerif_change_to_full_width ) ) {
    zerif_sidebar_trigger();
}
对此。。。

if ( $sidebar_layout === \'sidebar-left\' && empty( $zerif_change_to_full_width ) || is_singular(\'post\')) {
    zerif_sidebar_trigger();
}
理论上,这将迫使左侧边栏出现在帖子上,因为我添加了|| is_singular(\'post\'), 这仅仅意味着或是一个帖子。

您可以在右侧边栏的检查位置执行相同的操作。

if ( $sidebar_layout === \'sidebar-right\' && empty( $zerif_change_to_full_width ) || is_singular(\'post\')) {
     zerif_sidebar_trigger();
}
由于我们改变了周围的条件,我们还需要添加一些逻辑来处理正在使用的类。

改变

if ( ! empty( $zerif_change_to_full_width ) || \'full-width\' === $wrapper_class ) {
    echo \'<div class="content-left-wrap col-md-12">\';
} else {
    echo \'<div class="content-left-wrap col-md-9">\';
}
到。。。

if(is_singular(\'post\')){
    echo \'<div class="content-left-wrap col-md-9">\';
}elseif ( ! empty( $zerif_change_to_full_width ) || \'full-width\' === $wrapper_class ) {
    echo \'<div class="content-left-wrap col-md-12">\';
} else {
    echo \'<div class="content-left-wrap col-md-9">\';
}
更新:下面是您的完整代码在右侧边栏中的外观。注意到我搬家了|| is_singular(\'post\') 直到最后一条if语句。

<?php

/**
 * The Template for displaying all single posts.
 *
 * @package zerif
 */

get_header();

$sidebar_layout = apply_filters(\'zerif_sidebar_layout\', get_theme_mod(\'zerif_blog_sidebar_layout\', \'sidebar-right\'));
$wrapper_class  = \'content-left-wrap col-md-9\';

if (\'full-width\' === $sidebar_layout) {
    $wrapper_class = \'content-left-wrap col-md-12\';
}

?>
<div class="clear"></div>

</header> <!-- / END HOME SECTION  -->

<?php

zerif_after_header_trigger();

if (apply_filters(\'zerif_display_area_filter\', true, \'single\')) {
    $zerif_change_to_full_width = get_theme_mod(\'zerif_change_to_full_width\');
?>

<div id="content" class="site-content">
        <div class="container">
            <?php
    zerif_before_single_post_trigger();

    if ($sidebar_layout === \'sidebar-right\' && empty($zerif_change_to_full_width)) {
        zerif_sidebar_trigger();
    }
    if (is_singular(\'post\')) {
        echo \'<div class="content-left-wrap col-md-9">\';
    } elseif (!empty($zerif_change_to_full_width) || \'full-width\' === $wrapper_class) {
        echo \'<div class="content-left-wrap col-md-12">\';
    } else {
        echo \'<div class="content-left-wrap col-md-9">\';
    }

    ?>
    <?php
        zerif_top_single_post_trigger();
    ?>
        <div id="primary" class="content-area">
                <main itemscope itemtype="http://schema.org/WebPageElement" itemprop="mainContentOfPage" id="main" class="site-main">
    <?php
        while (have_posts()) {
            the_post();
            get_template_part(\'content\', \'single\');
            zerif_post_nav();
            /* If comments are open or we have at least one comment, load up the comment template */
            if (comments_open() || \'0\' != get_comments_number()) {
                comments_template(\'\');
            }
        }
    ?>
            </main><!-- #main -->
            </div><!-- #primary -->
    <?php
        zerif_bottom_single_post_trigger();
    ?>
    </div><!-- .content-left-wrap -->
    <?php
        zerif_after_single_post_trigger();

        if ($sidebar_layout === \'sidebar-right\' && empty($zerif_change_to_full_width) || is_singular(\'post\')) {
            zerif_sidebar_trigger();
        }
    ?>
</div><!-- .container -->
    </div>
    <?php
}
get_footer();
?>

相关推荐

第三方API-PHP致命错误与http_REQUEST_FAILED/cURL错误28

我们已经将第三方提供的一系列API集成到Divi的子主题中。在函数中。对于该子主题的php,我们创建了一系列函数,用于生成短代码,以从模板各个区域的API返回某些部分的数据。这些函数的代码编写于2019年第三季度。源代码未做任何更改,但截至1月中旬,我们经常(每天几次)出现以下PHP致命错误:PHP Fatal error: Uncaught Error: Cannot use object of type WP_Error as array in /nas/content/live/client/wp-