将PHP代码注入“侧边栏内容”--在我的WooCommerce侧边栏小部件之前的代码?

时间:2020-04-22 作者:Bruce Banner

我正试图在WooCommerce产品页面侧边栏内容之前添加一些PHP代码,但我一直找不到该在哪里添加这些代码。我试过编辑侧边栏。php,使用“woocommerce\\u侧边栏”挂钩,但无法实现此功能。

我只是希望在中的小部件内容上方可以看到一些PHP代码<div class="sidebar-content"

有人有简单的解决方法吗?get_sidebar( \'shop\' ); 正在调用shop,但如何在其中获取一些额外代码?

2 个回复
SO网友:Tony Djukic

WooCommerce允许您使用完全相同的文件名复制/替换其模板文件,并使用它们具有的相同路径结构将它们放置在主题目录中。因此,在主题目录中,添加一个名为woocommerce 然后在其中,您可以按照组织文件夹和模板文件的方式放置文件夹和模板文件。

因此,您将创建以下内容:yourtheme/woocommerce/global/sidebar.php

您可以在此处阅读有关整个过程的所有信息:https://docs.woocommerce.com/document/template-structure/

现在,在该文件中,我们有以下行:get_sidebar( \'shop\' );

您需要将其替换为:get_sidebar( \'shop-yourtheme\' );

不是在WooCommerce中,而是在主题中创建的副本中

现在,您要在主题目录中创建一个新文件,名为:sidebar-shop-yourtheme.php.

在您的functions.php 您必须注册一个新的侧栏:

<?php if ( function_exists (\'register_sidebar\')) { 
    register_sidebar (\'shop-yourtheme\'); 
} ?>
现在我们可以在侧栏中添加自己的PHP代码了。打开您的新sidebar-shop-yourtheme.php 并添加以下内容:

<?php
/**
* The shop sidebar widget area
* @package yourtheme
*/
if( !is_active_sidebar( \'shop-yourtheme\' ) ) {
    return;
}
?>
<aside id="secondary" class="widget-area">
<?php
    // Start Adding your PHP here.
    dynamic_sidebar( \'shop-yourtheme\' );
?>
</aside><!-- #secondary -->
如代码片段所示,如果希望在小部件开始将其添加到dynamic_sidebar().

SO网友:Trisha

Tony提供了一个很好的解决方案,另一个是添加PHP代码小部件(https://wordpress.org/plugins/php-code-widget/) 或PHP Everywhere插件,它允许您将PHP添加到文本小部件(https://wordpress.org/plugins/php-everywhere/).

请注意,我建议的第一个仅在WP 5.2.5之前进行测试,但在我的5.3安装-ymmv中似乎工作正常。

就我个人而言,我更喜欢按照Tony的建议修改我的模板文件,但是如果你没有使用子主题,那么你需要警惕主题更新会覆盖你的mods。。。。。插件可以避免这种情况。