WordPress 鼻涕虫变音
Wordpress Slug Umlaut
我有 2 个相互关联的问题!
如何让 slugs 为漂亮的 URL 工作,例如:ä、ü、ö、â、á 或那里存在的任何内容。
我不想让他们改写!我真的想让它与那个一起工作。我找到的唯一方法是一个名为 123Echt Laut 的过时插件,..它仍然有效,但我更喜欢有一些最新的东西,或者 php 代码这使得它无需重写就可以工作,例如从 ä 到 ae!我希望 ä 在 url 中显示为 ä!
另外,我想找回那个子弹.. 我在 google 中发现的是:
?php global $post;
$post_slug=$post->post_name;?>
我想让它检索单词:fünkel
我得到的是:f%c3%bcnkel
这可能是 this post 的副本,尽管它在 WordPress Stack Exchange 上。事实上,这个问题也应该发布在那里,因为它在技术上是一个 WordPress 问题。话虽如此,我认为这是您正在寻找的答案。
remove_filter( 'sanitize_title', 'sanitize_title_with_dashes');
add_filter( 'sanitize_title', 'restore_raw_title', 9, 3 );
function sweURLtoCHAR($text)
{
$url=array(
"%C3%84","%C3%A4",
"%C3%9C","%C3%BC",
"%C3%96","%C3%B6",
"%C3%82","%C3%A2",
"%C3%81","%C3%A1"
);
$char=array(
"Ä","ä",
"Ü","ü",
"Ö","ö",
"Â","â",
"Á","á"
);
$str = str_replace($char,$url,$text);
$str_new = str_replace(" ", "", $str);
return strtolower($str_new);
}
function restore_raw_title( $title, $raw_title, $context ) {
if ( $context == 'save' )
return sweURLtoCHAR($raw_title);
else {
$title_new = str_replace(" ", "", $title);
return strtolower($title_new);
}
}
编辑:哦,要从 "f%c3%bcnkel" 得到 "fünkel",请使用 urldecode()。就此而言,想一想,您可以将 sweURLtoCHAR
函数替换为这样的东西(未经测试):
function sweURLtoCHAR($text)
{
$str = urldecode($text);
$str_new = str_replace(" ", "", $str);
return strtolower($str_new);
}
我有 2 个相互关联的问题!
如何让 slugs 为漂亮的 URL 工作,例如:ä、ü、ö、â、á 或那里存在的任何内容。
我不想让他们改写!我真的想让它与那个一起工作。我找到的唯一方法是一个名为 123Echt Laut 的过时插件,..它仍然有效,但我更喜欢有一些最新的东西,或者 php 代码这使得它无需重写就可以工作,例如从 ä 到 ae!我希望 ä 在 url 中显示为 ä!
另外,我想找回那个子弹.. 我在 google 中发现的是:
?php global $post;
$post_slug=$post->post_name;?>
我想让它检索单词:fünkel 我得到的是:f%c3%bcnkel
这可能是 this post 的副本,尽管它在 WordPress Stack Exchange 上。事实上,这个问题也应该发布在那里,因为它在技术上是一个 WordPress 问题。话虽如此,我认为这是您正在寻找的答案。
remove_filter( 'sanitize_title', 'sanitize_title_with_dashes');
add_filter( 'sanitize_title', 'restore_raw_title', 9, 3 );
function sweURLtoCHAR($text)
{
$url=array(
"%C3%84","%C3%A4",
"%C3%9C","%C3%BC",
"%C3%96","%C3%B6",
"%C3%82","%C3%A2",
"%C3%81","%C3%A1"
);
$char=array(
"Ä","ä",
"Ü","ü",
"Ö","ö",
"Â","â",
"Á","á"
);
$str = str_replace($char,$url,$text);
$str_new = str_replace(" ", "", $str);
return strtolower($str_new);
}
function restore_raw_title( $title, $raw_title, $context ) {
if ( $context == 'save' )
return sweURLtoCHAR($raw_title);
else {
$title_new = str_replace(" ", "", $title);
return strtolower($title_new);
}
}
编辑:哦,要从 "f%c3%bcnkel" 得到 "fünkel",请使用 urldecode()。就此而言,想一想,您可以将 sweURLtoCHAR
函数替换为这样的东西(未经测试):
function sweURLtoCHAR($text)
{
$str = urldecode($text);
$str_new = str_replace(" ", "", $str);
return strtolower($str_new);
}