我试图在单个产品页面中设置侧边栏,显示与显示的产品相同类别的所有产品。获取显示Woocommerce中相同类别产品的侧边栏小部件
这就是我如何着手:
1)首先,我已经创建了一个名为“Products_of_same_Category”侧边栏就摆在那里一个小部件,以显示我需要的东西,然后在我的孩子我的主题的function.php添加下面的代码片段在文本组件来执行PHP代码:
// Enable PHP in widgets
add_filter('widget_text','execute_php',100);
function execute_php($html){
if(strpos($html,"<"."?php")!==false){
ob_start();
eval("?".">".$html);
$html=ob_get_contents();
ob_end_clean();
}
return $html;
}
2)然后,当我看到那个片断运行正常,我添加的代码进行测试:
<?php
$prod=get_the_term_list($post->ID, 'product_cat');
echo $prod;
?>
而且一切正常,它给了我单个产品页面中显示的产品当前类别的确切名称。 3)所以我尝试了另一个测试,删除以前的代码,以查看在PHP中编译的短代码是否也应该在小部件中工作(此时写入请求的确切类别名称,在本例中为“毛巾” - 在下面的代码我THE-CATEGORY-I-LIKE
代替它):
<?php echo do_shortcode('[product_category category=“THE-CATEGORY-I-LIKE” per_page="20" columns="1" orderby="title" order="desc"]'); ?>`
,一切都又做得好!
4)最后,我都混在这个代码中显示的同一类产品列表中,但出了问题:
<?php $prod=get_the_term_list($post->ID, 'product_cat', '', '', '');
echo do_shortcode('[product_category category="'.$prod.'" per_page="20" columns="1" orderby="title" order="desc"]'); ?>
在过去的情况下,代码不显示任何内容。我不明白我犯的错误,语法错误或解决方法不合逻辑?
我真的很感谢这方面的帮助。
感谢代码@vard,您的帮助非常棒。 现在我正在阅读您在代码中建议的参考资料。 下一步将从侧栏视图中排除产品页面中显示的产品以避免重复。如果你有其他建议或读数建议解决它,欢迎你。 – paolo70
@ paolo70是的,你可以使用一个过滤器 - 我更新了我的答案,以提供有关这方面的详细信息。 – vard