WP_QUERY循环,不能正确显示标题中的特殊字符

时间:2018-05-09 作者:Martin

我对WP_query 循环(下面是完整代码)。

每当我跑步的时候echo $post->post_title 它很好地打印出了标题。

但如果我尝试做以下事情:echo substr($post->post_title,0,1) 它不能显示特殊字符,例如ø æ å. 这就好像它把这个特殊的角色一分为二-这是什么?

我的意思是,如果我试图逃跑echo substr($post->post_title,0,2) (打印出2个字符),它正确打印字符,但只打印一个。

以下是我的循环完整代码:

<?php
$args = array( 
  \'orderby\'   => \'post_title\',
  \'order\'     => \'ASC\',
  \'post_type\' => \'ord\',
  \'posts_per_page\' => -1
  );
$loop = new WP_query($args);

$mainArray = array_chunk($loop->posts, ceil(count($loop->posts) / 4)); // Array af arrays

foreach ($mainArray as $array) {
$first_letter = \'\';

  echo "<div class=\'col ordbog-column\'>";
  foreach($array as $post) {
    $current_letter = strtoupper(substr($post->post_title,0,1));

    if($current_letter != $first_letter) {
      echo "<h3 class=\'letter\' id=\'letter_$current_letter\'>$current_letter</h3>";
      $first_letter = $current_letter;
    }

    $html = \'<a href="\'.get_permalink().\'" class="ord">\'.get_the_title().\'</a><br/>\';
    echo $html;
  }
  echo "</div>";
} 
如何修复此循环,以便在列出的内容上仅正确显示一个字母(无论哪个字母)作为标题?

2 个回复
SO网友:Adeel Nazar

您是否尝试过用mb\\U substr()替换substr函数

$current_letter = strtoupper(mb_substr($post->post_title,0,1));

SO网友:Tom J Nowell

这是一个一般的PHP问题,而不是WP问题。

具体来说,这些字符是多字节字符,通过substr 把它切成两半

相反,请尝试使用mb_substr

结束

相关推荐

只对/博客部分使用WordPress,所有其他页面都是静态的,但使用相同的footer.php和header.php

我正在努力实现一些我认为应该相当容易的事情,但不知怎么的,我被卡住了。我已经为许多静态页面和博客部分创建了css和html,现在我想将其转换为wordpress主题,但我只希望目标站点的/博客部分使用wordpress循环来发布博客文章。所有其他页面都是静态的,但显然使用相同的标题。php和页脚。php,我可以通过使用require 在这些页面中,但作为一个例子,我想链接到/关于而不是关于。php在我的导航中,所以我希望它通过Wordpress。这有意义吗?谢谢