Ich habe ein Problem mit einer WP_query
-Schleife (vollständiger Code unten).
Immer wenn ich echo $post->post_title
gerade starte, druckt es den Titel einfach schön aus.
Wenn ich jedoch versuche, Folgendes zu tun: echo substr($post->post_title,0,1)
, können keine Sonderzeichen wie ø æ å
angezeigt werden. Es ist, als würdedas Sonderzeichen in zwei Teile teilen - was zum?
Ich sage, es teilt es auf, weil, wenn ich versuche, echo substr($post->post_title,0,2)
auszuführen (2 Zeichen auszudrucken), es das Zeichen korrekt druckt, aber nur eines druckt.
Hier ist mein vollständiger Code für die Schleife:
<?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>";
}
Wie behebe ich diese Schleife, damit ich nur einen Buchstaben (unabhängig davon, welcher) korrekt als Überschrift über dem aufgelisteten Inhalt anzeigen kann?
Haben Sie versucht, mb_substr () durch mb_substr zu ersetzen
$current_letter = strtoupper(mb_substr($post->post_title,0,1));
Dies ist ein allgemeines PHP Problem und kein WP Problem.
Insbesondere handelt es sich bei diesen Zeichen um Multibyte-Zeichen. Wenn Sie das erste Zeichen mit substr
erfassen, wird es in zwei Hälften geteilt
Versuchen Sie stattdessen, mb_substr
zu verwenden.