请注意,在以下情况下:
add_filter (\'comments_template\', \'fbcommentbox\', 100);
我们期望
fbcommentbox()
返回
path 到新的注释模板文件。默认路径为
comments.php
.
如果您创建fbcommentbox.php
文件,然后您可以尝试:
add_filter( \'comments_template\', \'fbcommentbox\', 100);
function fbcommentbox( $theme_template )
{
// Path to our new comment template file
$new_theme_template = get_template_directory() . \'/fbcommentbox.php\';
// Override if it exsits
if( file_exists( $new_theme_template ) )
$theme_template = $new_theme_template;
return $theme_template;
}
如果文件
fbcommentbox.php
不存在,则加载默认值。对于儿童主题,我们将使用
get_stylesheet_directory()
.
以下是一个简短的版本:
function fbcommentbox( $theme_template )
{
return locate_template( \'fbcommentbox.php\' );
}
其中
locate_template()
做所有艰苦的工作。
更新,但您提到要覆盖wp_list_comments()
相反
这里有一种方法可以通过更改echo
参数到false
:
add_filter( \'wp_list_comments_args\', function( $args )
{
// Display fbcommentbox.php
get_template_part( \'fbcommentbox\' );
// Disable output of wp_list_comments()
$args[\'echo\'] = 0;
return $args;
} );
和输出,而不是
fbcommentbox.php
样板