Show comments in a popup

时间:2015-07-14 作者:terminator

我想在弹出式菜单中为带有id=22.

这是一个锚点,单击该锚点将打开弹出窗口:

<a class="button button-small button-line-light comment-popup" 
    href="<?php echo get_stylesheet_directory_uri();?>/comments-detail.php">View All</a>
如果我有纯htmlcomments-detail.php, 弹出窗口显示html。

但是当我尝试获取页面的评论列表时id=22, 在里面comments-detail.php, 使用以下简单代码:

<?php 
    $args = array(
        \'post_id\' => 22
    );
    $comments = get_comments( $args );
?>
然后我得到错误:

调用未定义函数get_comments()

我做错了什么,还是我的方法完全错了?

1 个回复
SO网友:birgire

你在这里发明轮子;-)

问题是,您使用这种方法绕过了WordPress,因此这就解释了错误消息。

访问主题目录中的任何自定义文件将not 自动加载WordPress core。

WordPress核心已经支持此功能。

你应该退房comments_popup_link()comments_popup_script().

一般来说,对于给定的帖子,您可以通过以下方式获得所有评论:

example.tld/?comments_popup=123
在哪里123 是一些帖子ID。

您可以通过放置自己版本的comments-popup.php 文件,位于当前主题目录中。

默认设置位于/wp-includes/theme-compat/comments-popup.php.

WP 4.2.2中的注释-核心中的内联文档不正确this description:

模板路径可通过“comments\\u popup\\u template”挂钩进行过滤

$template = get_query_template( \'comments_popup\', array( \'comments-popup.php\' ) );
和内部get_query_template() 我们有以下清洁:

    $type = preg_replace( \'|[^a-z0-9-]+|\', \'\', $type );
其中类型comments_popup 已更改为commentspopup.

因此,正确的过滤器是:

add_filter( \'commentspopup_template\', function( $template )
{   
    return $template;
} );
看起来应该是正确的类型comments-popup 而不是comments_popup. 但是我们会想为什么下划线会被删除-签出票证#21213 阅读更多关于这方面的内容。

我在这里提交了核心跟踪记录单#32989, 关于内联文档。

结束

相关推荐

“Comments.php”在可湿性粉剂管理中编辑后不可用

在主题“Point”中,“comments.php”页面没有正确翻译。我想在WP管理编辑器中手动翻译标签(法语),但是when I update the file, the comments doesn\'t appear anymore on my website.然而,我只是改变了标签。知道我做错了什么吗?此问题是否与主题或我的WP安装相关?Here is the code before: <?php // Do not delete these lines if