我知道如何过滤函数的输出the_permalink
- 是这样的:
add_filter(\'the_permalink\', \'my_the_permalink\');
function my_the_permalink($url) {
return \'http://mysite/my-link/\';
}
当我像这样使用它时,它会起作用:
<?PHP the_permalink($id); ?>
, 但我想更改返回的链接
get_permalink($id)
作用在这种情况下,此过滤器不会影响返回的permalink。
我想用以下方法来抓住它:
add_filter(\'post_link\', \'my_get_permalink\', 10, 3);
function my_get_permalink($url, $post, $leavename=false) {
return \'http://mysite/my-link/\';
}
但此筛选器不是为
get_permalink()
. 那么如何更改
get_permalink()
?
SO网友:venoel
我成功地使用了此语句。
add_filter(\'post_type_link\', function ($post_link, $post, $leavename, $sample) {
if ($post->post_type == \'mycustomposttype\') {
...
$post_link = \'https://my.custom.site\' . $some_uri;
}
return $post_link;
}, 999, 4);