gpt4 book ai didi

php - 在 Wordpress 主题中使用 sidebar.php

转载 作者:行者123 更新时间:2023-12-05 05:22:33 26 4
gpt4 key购买 nike

我最近在一个自建主题上安装了 Woocommerce,并收到一条错误消息,告诉我需要向我的主题添加一个 sidebar.php 代码。错误消息后面是一个杂乱无章的列表中的小部件列表。这些小部件包括搜索栏、我站点中的页面列表以及文件和类别​​列表。我现在已经按照似乎有效的教程创建了 sidebar.php – 我已经包含了我在下面使用的代码。

我发现不寻常的是,自从添加侧边栏后,这些小部件似乎消失了,我现在必须使用外观菜单下的小部件选项卡手动添加它们。我不明白为什么他们会消失?

我一直假设在添加侧边栏时,我必须通过 PHP 代码添加小部件 – 否则侧边栏不会与其他模板冲突吗?例如,我可以为我的商店页面添加 Woocommerce 小部件,但是当我想创建博客文章时,我将需要不同的小部件,而 Woocommerce 小部件仍将位于侧边栏中,反之亦然。

也许我已经开始以错误的方式做这件事..也许有人可以指出我正确的方向?我一直在谷歌上搜索这个并观看了一些 youtube 教程,但没有找到我正在寻找的答案。

我的代码如下:

函数.php

function enable_widgets() {

register_sidebar(
array(
'name' => 'Main Sidebar',
'id' => 'sidebar',
'description' => 'Here you can add widgets to the main sidebar.',
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<h5 id="widget-heading">',
'after_title' => '</h5>'
));

}

add_action('widgets_init','enable_widgets');

sidebar.php

<div class="sidebar">
<?php dynamic_sidebar('sidebar'); ?>
</div>

最佳答案

在woocommerce/templates/global/sidebar.php中可以看到woocommerce是如何显示侧边栏的。

<?php
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}

get_sidebar( 'shop' ); ?>

它将首先搜索 sidebar-shop.php,然后是 sidebar.php。因此,您需要做的就是在您的主题文件夹下创建 sidebar-shop.php。

然后在您的 sidebar-shop.php 中,显示您已注册的小部件区域。

sidebar-shop.php

<div class="sidebar">
<?php dynamic_sidebar('sidebar'); ?>
</div>

还有另一种方法可以使用相同的 sidebar.php 显示 woocommerce 特定的小部件区域。由于 WooCommerce 有一些 conditional tags ,我们可以使用 is_woocommerce() 来确定页面是否使用 WooCommerce 模板。

sidebar.php

<div class="sidebar">
<?php

if ( is_woocommerce() ) {
dynamic_sidebar('sidebar');
} else {
dynamic_sidebar('default-sidebar');
}

?>

</div>

关于php - 在 Wordpress 主题中使用 sidebar.php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40244393/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com