我找到了esc_url() 函数,我正在尝试了解如何处理Wordpress中的URL,然后再使用我的常规PHP策略。我看到third parameter 用于设置在其上运行的筛选器,默认值为“display”。这是为了显示在网页上。我在WP源代码中搜索了使用第三个参数的示例,只找到了一个示例:
$ grep -rP "esc_url.*\\([^\\)\\,]*\\,[^\\)\\,]*\\, ?\'?\\"?.*\\)" *
wp-includes/formatting.php: return esc_url( $url, $protocols, \'db\' );
所有其他匹配项
grep
用于不相关的调用,例如使用另一个函数调用的返回值作为
esc_url()
论点
Other than \'display\' and \'db\', what other values should be used and when? 我在WP源代码中看到了很多在href中使用显示值的地方,下面是一个示例:
$ grep -r esc_url * | grep href
wp-admin/themes.php: <td><a href="<?php echo esc_url( $delete_url ); ?>" class="button button-secondary delete-theme"><?php _e( \'Delete\' ); ?></a></td>
Should the \'display\' value really be used for an href attribute? 在我看来,它做了一些编码,我不相信在之后总是返回到正确的URL,特别是对于非ASCII URL。
“dispaly”过滤器用于实际URL,这是WP中的一个错误吗?还是我应该在自己的代码中使用“display”过滤器用于实际URL?