我有一个通过wp\\U ajax调用的模板文件,该文件返回特定WooCommerce产品的数据。
在模板文件的“选项卡”部分,每个选项卡都工作正常:
说明-良好其他信息-良好自定义选项卡-良好唯一未呈现选项卡面板内容的选项卡是评论选项卡。
有趣的是选项卡链接(li
) 显示正确的选项卡计数。但是,当您单击该链接时,审阅面板不再显示:无并设置为活动-不显示任何内容。(这已在开发工具中得到验证)。
调用所有单个选项卡的代码是:
<?php call_user_func( $tab[\'callback\'], $key, $tab ) ?>
在哪里
$tab
是具有以下内容的数组:
查看选项卡调用指定的WooCommercecomments_template
回调。
这应该会触发钩入class WC_Template_Loader
:
add_filter( \'comments_template\', array( __CLASS__, \'comments_template_loader\' ) );
在测试中,我将var\\u
WC_Template_Loader
init函数和add\\u过滤器所在的init函数正在运行。
但是,当我var\\u在comments_template_loader()
函数,则不返回任何内容。
顺便提一下,所有其他WooCommerce生成的内容都正确呈现(global $woocommerce, $post, $product
已声明)。
为什么当所有其他默认的Wordpress标签过滤器都在运行时,这个过滤器没有运行?
最合适的回答,由SO网友:W00tW00t111 整理而成
好吧,对于那些希望在实际的单一产品页面上不包含WooCommerce评论标签的人来说,这里有一个秘诀:
在模板文件中,您需要:
global $withcomments;
$withcomments = true;
然后为评论模板添加过滤器:
//add filter to use our custom review template
add_filter(\'comments_template\',\'{{YOUR_HELPER_FUNCTION}}\');
/**
* Hook function for using custom quickview review template
* @return [string] [file path to the template]
*/
function YOUR_HELPER_FUNCTION(){
$template = LCS_DIR . "../templates/tmpl-single-product-reviews.php";
if ( file_exists( $template ) )
return( $template );
}
$template
是要使用的模板文件的完整文件路径。
巴达宾,你完了!