Я использую ниже код для подбора заголовков и покажу его в недавнем разделе сообщений в своем блоге :
<?php global $post; $releaseDate = get_post_meta($post->ID, "gosterim_tarihi", true); foreach( $images as $image ) { $title = get_the_title(); if (strlen($title) > 20) { $title = substr($title, 0, 20) . '…'; } $attachmentimage=wp_get_attachment_image_src( $image->ID, 'large' ); echo '<li><a href="'. get_permalink() .'" title="' . $title . '"><img src="'. $attachmentimage[0] .'" alt="'. $title .'" />'. $title .'<span>Gösterim Tarihi: ' . $releaseDate . '</span></a></li>'; } ?>
Но есть проблемы с объектами символов HTML. Когда я использую функцию substr
для обрезки заголовка, функция substr
элементы HTML-символов.
Поэтому я попытался использовать функцию html_entity_decode
но я не могу сделать это очень хорошо.
Кто-нибудь может мне помочь?
Попробуй это:
$output = htmlentities(substr(html_entity_decode($input), 0, 20));
Это будет декодировать все сущности, поэтому substr
ничего не сломает. После этого вы можете закодировать все символы обратно на свои объекты.
Я думаю, вы можете использовать функцию strip_tags, например:
substr(strip_tags($title), 0, 20);
Это касается только заголовка, исключая любые html-символы.
Использовать эту функцию
<?php function keephtml($string){ $res = htmlentities($string); $res = str_replace("<","<",$res); $res = str_replace(">",">",$res); $res = str_replace(""",'"',$res); $res = str_replace("&",'&',$res); return $res; } ?>
Было бы более чистым, если вы можете оставить html-кодирование до последней минуты, например, когда вы действительно эхо-строку $ title. Конечно, это означает, что вы должны помнить, что сами кодируете все строки.