我有以下代码:
<a href="<?php echo esc_url( esc_attr( get_month_link( get_the_time('Y'),
get_the_time('m') ) ) ); ?>"><?php the_time( get_option( 'date_format' ) ); ?></a>
我的问题是:我做了多少不必要的逃避,因为你可以看到我正在使用
esc_url()
与esc_attr()
相结合。这可能是一种矫枉过正吗? THX !!
答案 0 :(得分:2)
总结一点:IMO你不需要esc_attr
进行转义(因为你的网址不包含characters it escapes)而且esc_url
也没用(因为我没有认为必须对URL returned from get_month_year
进行消毒 - 这不是用户输入。)
然后?只需删除它们:
<a href="<?php echo get_month_link( get_the_time('Y'), get_the_time('m') ); ?>"><?php the_time( get_option( 'date_format' ) ); ?></a>
当然,如果您不“信任”get_month_year
参数验证,您可以保留esc_url
(但我要说这可能有点过于偏执)。