我不知道如何在我这样使用的特定WP页面上过滤评论permalink:
if(condition is met) {
(filter the comment url)
}
。。。因此,可以从此更改页面中的所有注释永久链接:
http://example.com/slug-to-page/#comment-n
对此:
http://example.com/new-slug/#comment-n
简而言之,我正在尝试更改指向页面permalink的url结构,不包括
site_url (首页url)和
comment slug (例如#注释-n)
到目前为止,我已经在comment_link filter 这里什么都没有发生:
function my_comment_link_filter( $link ) {
$link = str_replace( get_permalink() , $new_permalink_structure , $link );
return $link;
}
add_filter( \'comment_link\', \'my_comment_link_filter\', 10, 3 );
看来我做错了,我当然会感激你的帮助。
最合适的回答,由SO网友:58YtQ2H83m17838963l61BU07Y8622 整理而成
我找到了一个确切的解决方案。
function my_comment_link_filter( $link ) {
$link = str_replace( get_permalink() , $custom_permalink , $link );
return $link;
};
add_filter( \'get_comment_link\', \'my_comment_link_filter\' );
它正是我想要的:当我调用过滤器时,它将页面永久链接替换为动态永久链接。
SO网友:cjbj
我不完全确定你想完成什么,但我想是这样的。通常,您会生成一个指向以下注释的链接:
echo \'<a href="\' . get_permalink($comment->comment_post_ID) . \'#comment-\' . (strval($comment->comment_ID)) . \'">\';
问题在于
filtering get_permalink()
过滤器必须知道它是由页面内的注释部分调用的,而不是由同一页面的另一部分调用的。没有明显的方法可以做到这一点,除非您绕过内置的过滤系统并当场调用您的函数:
$permalink = my_comment_link_filter (get_permalink($comment->comment_post_ID));
echo \'<a href="\' . $permalink . \'#comment-\' . (strval($comment->comment_ID)) . \'">\';
记住,您还必须有一些重定向,以便WP能够理解永久链接。此外,这种方法意味着单击页面中的永久链接将导致页面重新加载,因为它是一个不同的url。