首页 > 解决方案 > Wordpress 自定义侧边栏模板未激活

问题描述

我正在开发一个 wordpress 网站(我的第一个网站),我想在该网站上为特定页面模板使用特定的侧边栏。侧边栏不是常规的小部件区域,而是调用表单的另一个模板(boeking.php)的模板(sidebar-2.php)。

我使用默认的 page.php 和 sidebar.php 作为起点,复制了几乎所有内容,从而为使用get_sidebar('2'). 我还创建了一个模板 sidebar-2.php:

起初它可以工作,但是当我在网站的另一部分工作时,它突然停止工作。页面模板工作正常,但它不加载侧边栏 2,因为is_active_sidebar()返回 false。但是,我不知道为什么它返回 false。当我get_sidebar()在 reisbeschrijving.php 中调用(默认)时,它会显示 sidebar.php,并is_active_sidebar()返回 true。如果我删除 ifis_active_sidebar()子句,sidebar-2 会显示得很好。sidebar.php 和 sidebar-2.php 都在同一个文件夹中(子主题)。

我错过了什么?我应该在标题中的某处注册新的 sidebar-2 模板吗?我知道带有小部件区域的自定义动态侧边栏就是这种情况,但这是一个全新的模板,我认为我不必这样做(无论如何我都尝试过,但无济于事)。is_active_sidebar非常感谢任何关于为什么在我的第二个侧边栏上返回“false”的提示。

标签: phpwordpresssidebar

解决方案


第一个注册侧边栏 - functions.php

function my_custom_sidebar() {
    register_sidebar(
        array (
            'name' => __( 'Custom', 'your-theme-domain' ),
            'id' => 'custom-side-bar',
            'description' => __( 'Custom Sidebar', 'your-theme-domain' ),
            'before_widget' => '<div class="widget-content">',
            'after_widget' => "</div>",
            'before_title' => '<h3 class="widget-title">',
            'after_title' => '</h3>',
        )
    );
}
add_action( 'widgets_init', 'my_custom_sidebar' );
  1. 将此代码放入模板中

    if ( is_active_sidebar( 'custom-side-bar' ) ) : dynamic_sidebar( 'custom-side-bar' ); 万一;

这将 100% 有效


推荐阅读