更改Get_Comments_link()和Get_Comments_Pagenum_link()函数生成的注释链接

时间:2010-12-20 作者:maduroblanco

当前我的主题需要get_comments_link() 创建标准定位的步骤#comments 链接到帖子下方的评论,以及get_comments_pagenum_link() 对分页注释执行函数。

我想更换#comments 使用任何其他字符串锚定这些函数,当然不会更改WP的核心php文件。

一个简单的add_filter 完全替换核心函数(pluggable.php中的除外)似乎是不可能的。有没有其他方法可以实现对使用PHP(而不是Java)的核心函数的输出的这一微小更改?这里有没有办法使用add_filter 具有str_replace() 可能

这对于外语网站很有用,例如,可以通过url请求将评论重定向到另一个页面。

2 个回复
最合适的回答,由SO网友:maduroblanco 整理而成

因此get_comments_pagenum_link() 函数非常简单:

add_filter(\'get_comments_pagenum_link\' , \'new_get_comments_pagenum_link\');
function new_get_comments_pagenum_link($content) {
    $content = str_ireplace(\'#comments\' , \'#other\', $content);
    return $content;
}
过滤的输出get_comments_pagenum_link() 替换#content 具有#other, 或您可能选择的任何其他字符串。

对于get_comments_link() 函数,它不能被过滤,我只是发现我的WordPress主题已经在它自己的评论链接函数中使用了它,所以我用上面显示的相同方法过滤了这个主题函数。

SO网友:hakre

对于函数get_comments_link() 不存在此类筛选器。您可能需要使用一个名为get_comment_link() 它有一个过滤器:get_comment_link.

对于函数get_comments_pagenum_link() 存在筛选器:get_comments_pagenum_link.

要了解过滤器的工作原理,请参阅Plugin API (Wordpress Codex). 那里的信息应该回答有关如何使用的所有问题add_filter().

由于链接在PHP中是一个字符串,因此可以使用任何PHP字符串函数来定位、提取和替换内容。Full list of PHP String functions (PHP Manual).

结束

相关推荐

创建补丁以提交给WordPress Core的最简单方法?

我已经提交了一些patches for WordPress core 在…上Trac (其中一个已经被使用过)但每次我想这样做的时候,我都会退缩,因为我这样做的设置令人难以置信地乏味。有人能详细说明提交core补丁所需的步骤吗,然后是简化流程的最佳方法,这样就不会那么乏味了?我目前使用Mac OS X和PhpStorm,但我认为shell脚本可能是最简单的?或者是一个PHP脚本,它可以完成所有的死记硬背工作?问题之一是我不完全理解我需要从什么开始。我是从行李箱开始的吗?每次我想创建补丁时,我是否必须下载一