WordPress抄本says:
需要注意的是,大多数WordPress函数都正确地为输出准备了数据,无需再次转义。
例如the_permalink()
已使用以下内容转义输出:
echo esc_url( apply_filters( \'the_permalink\', get_permalink( $post ), $post ) );
所以你不需要自己来这里。但是
get_the_permalink()
函数不:
return get_permalink( $post, $leavename );
也不是
get_permalink()
功能:
return apply_filters( \'post_link\', $permalink, $post, $leavename );
它们不是特定的显示功能。
WordPress在代码库中使用过滤器,使主题和插件能够调整各种核心功能的输出。以下是一些可能的(边缘情况)示例:
add_filter( \'post_link\', function( $link )
{
return get_option( \'some_url\' );
}, PHP_INT_MAX );
甚至:
add_filter( \'post_link\', function( $link )
{
return get_post_meta( 1, \'some_url\', true );
}, PHP_INT_MAX );
所以如果我们显示
get_permalink()
直接来说,我们应该用例如。
<a href="<?php echo esc_url( get_permalink() );?>">...</a>
但总的来说,我认为如果我们不知道核心函数是如何处理它的,那么最好避开它的输出,但仅仅检查它不应该太费力。