我有以下代码:
<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()
. 这可能是矫枉过正吗?谢谢!!
我有以下代码:
<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()
. 这可能是矫枉过正吗?谢谢!!
总结一下:IMO你不需要转义esc_attr
(因为你的URL不会包含它转义的字符)并且esc_url
也没用(因为我认为返回的URLget_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
(但让我说这可能有点过于偏执了)。