问题描述
我正在使用自定义固定链接”/%category%/%postname%/” 。每当标题包含引号或撇号时,它们都会显示在 URL 中。
有人可以告诉我如何防止他们出现在 s 子里?
我正在运行 WordPress 3.0.4 。
最佳解决方案
在 WordPress 中,”—“ 和 「 – 」 成为 em-dashes( – —
),”–“ 成为 en-dash(-#8212;
) 。 sanitize_title_with_dashes()功能没有抓住这些。
该功能使用数据库副本,但显示给用户的标题总是通过一个纹理化函数。所以如果我们在数据库中替换 en /em 破折号,最终的结果将是一样的,并避免这些不良的 URL 的情况,标题是 re-texturized 。
add_action( 'title_save_pre', 'do_replace_dashes' );
function do_replace_dashes($string_to_clean) {
# The html entities (– and —) don』t actually work but I include them for kicks and giggles.
$string_to_clean = str_replace( array('—', '—', '–', '–', '‚', '„', '「', '」', '』', '『', '…'), array(' -- ',' -- ', '--','--', ',', ',,', '"', '"', "'", "'", '...'), $string_to_clean );
return $string_to_clean;
}
次佳解决方案
我看到有一些插件可以解决这个问题。检查 Clean URL 例如:
This simple WordPress plugin is used when generating article slug (= article name used in URL). It removes all characters other than letters a-z, numbers and hyphens (-). The plugin runs as the last one in the whole url-generating process, so first all standard replacements of diacritics and accents are performed, and then, if still some strange characters are present they are cut out.
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。