您可以直接调用PHP函数。在这种情况下,我们可能不想打电话the_permalink()
因为它呼应了链接:
function the_permalink( $post = 0 ) {
/* ... */
echo esc_url( apply_filters( \'the_permalink\', get_permalink( $post ), $post ) );
}
然而,我们希望返回字符串中的链接。因此,您可以选择:
确实要使用\\u permalink(),但是capture the output buffer 要获取回显链接URL,请执行以下操作:
function read_more() {
ob_start();
the_permalink();
$permalink = ob_get_clean();
return \'<a href="\' . $permalink . \'">Read More</a>\';
}
或者在自己的代码中复制过滤器并从\\u permalink中转义,将其保存在变量中以供使用:
function read_more() {
$permalink = esc_url( apply_filters( \'the_permalink\', get_permalink(), 0 ) );
return \'<a href="\' . $permalink . \'">Read More</a>\';
}
或者直接使用
get_permalink() 相反,未过滤,这是许多WordPress自己的代码所做的(有时也不转义):
function read_more() {
return \'<a href="\' . esc_url( get_permalink() ) . \'">Read More</a>\';
}
(顺便提一下,如果你在分发的插件或主题中这样做,你还想让“阅读更多”可以翻译,例如。
\'<a href="\' . $permalink . \'">\' . __( \'Read More\' ) . \'</a>\';
)