Wordpress 主题调试:插件侧边栏导致原始侧边栏不显示
Wordpress Theme Debug: Plugin sidebar causes original sidebar not to display
我已经确定我的插件代码在其他主题中工作得很好,但是在主题中:Magazinly,我写的侧边栏插件,导致侧边栏不显示。通过调试,我确定侧边栏注册了,并且创建了两个侧边栏数组,但没有填充一个。
插件代码如下:
register_sidebar(array(
'name'=>'Bottom Widget Area',
'id'=> 'bottom-widget',
'before_widget' => '<aside class="widget %2$s">',
'after_widget' => '</aside>',
'before_title' => '<div class="block-title"><span>',
'after_title' => '</span></div>'
));
include 'add_bottom_bar.php';
这是add_bottom_bar.php:
// Register Bottom_Bar
function add_bottom_widget(){
echo '<div class=\'bottombar\'>';
if (!function_exists('dynamic_sidebar') || !dynamic_sidebar('bottom-widget')) :
endif;
echo '</div>';
}
add_action ('get_footer', 'add_bottom_widget');
// Register style sheet.
add_action( 'wp_enqueue_scripts', 'register_plugin_styles' );
// Register style sheet.
function register_plugin_styles() {
wp_register_style( 'custom_widget_final', plugins_url( 'custom_widget_final/css/bottom_bar.css' ) );
wp_enqueue_style( 'custom_widget_final' );
}
这是 Magazinly 侧边栏的代码:
还有这段代码似乎使用主题创建者称为 'dinamic sidebar' 的任何东西来......好吧......我想......呈现动态侧边栏:
但是,我的猜测是 this 是罪魁祸首:Magazinly 主题使用了这个侧边栏加载程序,但它似乎严重矫枉过正。我猜我正在注册的侧边栏小部件正在破坏此侧边栏加载器。
提供了所有代码后,我的下一个问题是:我有哪些选择?我需要将小部件位置添加到三个站点,所有站点都使用相同的主题,但保留侧边栏。目前,如果我激活我的插件,侧边栏将不会加载,但插件可以工作。如果我停用插件,侧边栏 returns。
两者都很重要,但我无法修改主题,创建子主题似乎过多。我更喜欢调试这个主题,并使用小部件。
这是我tried/tested:
在其他四个 WP 站点上测试了这个插件。没有问题。侧边栏渲染良好。插件就像一个魅力。
在问题站点上:wp_debug,设置为 true... 不会抛出任何错误,但会针对每个主题的本机侧边栏(未设置 id,这是预4.1 事物)。据我所知,它不会影响任何东西。
我删除了底部的包含,只是为了缩小 my 代码中可能出现问题的范围。我确定即使 css 排队被禁用,或者即使 add_bottom_bar.php 不包括在内,主题的本机侧边栏仍然会中断。这让我非常清楚地知道存在 register_sidebar 冲突。
我查看了插件激活和停用时的源代码。我发现在比较源代码后,当插件被激活时,边栏不会显示在源代码中,所以据我所知,这不是 css/js 的事情。
什么,如果有任何解决方法可以解决这个问题吗?一个小部件将大大改善工作流程,但我开始考虑放弃 sidebar/widget 情况可能更明智。
有任何提示、技巧或见解吗?我知道我的问题有点笼统,但我在这里碰壁了,试图不干涉这个主题代码。
如有任何帮助,我们将不胜感激!谢谢!
好的。弄清楚了。
add_action( 'widgets_init', 'bottom-widget' );
需要在注册侧边栏后立即初始化小部件。
我已经确定我的插件代码在其他主题中工作得很好,但是在主题中:Magazinly,我写的侧边栏插件,导致侧边栏不显示。通过调试,我确定侧边栏注册了,并且创建了两个侧边栏数组,但没有填充一个。
插件代码如下:
register_sidebar(array(
'name'=>'Bottom Widget Area',
'id'=> 'bottom-widget',
'before_widget' => '<aside class="widget %2$s">',
'after_widget' => '</aside>',
'before_title' => '<div class="block-title"><span>',
'after_title' => '</span></div>'
));
include 'add_bottom_bar.php';
这是add_bottom_bar.php:
// Register Bottom_Bar
function add_bottom_widget(){
echo '<div class=\'bottombar\'>';
if (!function_exists('dynamic_sidebar') || !dynamic_sidebar('bottom-widget')) :
endif;
echo '</div>';
}
add_action ('get_footer', 'add_bottom_widget');
// Register style sheet.
add_action( 'wp_enqueue_scripts', 'register_plugin_styles' );
// Register style sheet.
function register_plugin_styles() {
wp_register_style( 'custom_widget_final', plugins_url( 'custom_widget_final/css/bottom_bar.css' ) );
wp_enqueue_style( 'custom_widget_final' );
}
这是 Magazinly 侧边栏的代码:
还有这段代码似乎使用主题创建者称为 'dinamic sidebar' 的任何东西来......好吧......我想......呈现动态侧边栏:
但是,我的猜测是 this 是罪魁祸首:Magazinly 主题使用了这个侧边栏加载程序,但它似乎严重矫枉过正。我猜我正在注册的侧边栏小部件正在破坏此侧边栏加载器。
提供了所有代码后,我的下一个问题是:我有哪些选择?我需要将小部件位置添加到三个站点,所有站点都使用相同的主题,但保留侧边栏。目前,如果我激活我的插件,侧边栏将不会加载,但插件可以工作。如果我停用插件,侧边栏 returns。 两者都很重要,但我无法修改主题,创建子主题似乎过多。我更喜欢调试这个主题,并使用小部件。
这是我tried/tested:
在其他四个 WP 站点上测试了这个插件。没有问题。侧边栏渲染良好。插件就像一个魅力。
在问题站点上:wp_debug,设置为 true... 不会抛出任何错误,但会针对每个主题的本机侧边栏(未设置 id,这是预4.1 事物)。据我所知,它不会影响任何东西。
我删除了底部的包含,只是为了缩小 my 代码中可能出现问题的范围。我确定即使 css 排队被禁用,或者即使 add_bottom_bar.php 不包括在内,主题的本机侧边栏仍然会中断。这让我非常清楚地知道存在 register_sidebar 冲突。
我查看了插件激活和停用时的源代码。我发现在比较源代码后,当插件被激活时,边栏不会显示在源代码中,所以据我所知,这不是 css/js 的事情。
什么,如果有任何解决方法可以解决这个问题吗?一个小部件将大大改善工作流程,但我开始考虑放弃 sidebar/widget 情况可能更明智。
有任何提示、技巧或见解吗?我知道我的问题有点笼统,但我在这里碰壁了,试图不干涉这个主题代码。
如有任何帮助,我们将不胜感激!谢谢!
好的。弄清楚了。
add_action( 'widgets_init', 'bottom-widget' );
需要在注册侧边栏后立即初始化小部件。