Wordpress Slug Umlaut

时间:2015-06-07 02:29:13

标签: php wordpress rewrite slug

我有两个相互关联的问题!

我如何让slu for适用于漂亮的网址,例如:ä,ü,ö,â,á或那里存在的东西。

我不希望他们改写它!我真的想让它与它一起工作..我找到的唯一方法是一个名为123Echt Laut的过时插件,它仍然可以工作,但我更喜欢有一些最新的东西,或者是一个能让它工作的PHP代码没有重写它,例如ä到ae!我希望ä以Ä显示在网址中!

另外我想要检索那个slu ..我在谷歌找到的是这个:

?php global $post;
$post_slug=$post->post_name;?>

我希望它能找到这个词:fünkel 我得到的是:f%c3%bcnkel

1 个答案:

答案 0 :(得分:2)

这可能是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);
}