wordpress サイトにカスタム テーマを使用しています。
post.class.php のこのコードは、投稿の抜粋がどのように見えるかを制御します。
function get_excerpt($post, $ln){
if (!empty($post->post_excerpt)) {
if (strlen(strip_tags(strip_shortcodes($post->post_excerpt))) > $ln) {
echo mb_substr(strip_tags(strip_shortcodes($post->post_excerpt)), 0, $ln) . '[...]';
} else {
echo strip_tags(strip_shortcodes($post->post_excerpt));
}
} else {
if (strlen(strip_tags(strip_shortcodes($post->post_content))) > $ln) {
echo mb_substr(strip_tags(strip_shortcodes($post->post_content)), 0, $ln) . '[...]';
} else {
echo strip_tags(strip_shortcodes($post->post_content));
}
}
}
上記のコードを編集して、短いコードと html の書式設定が削除されないようにするにはどうすればよいですか?
これは、投稿の抜粋 (同じファイル) に表示される文字数を構成するコードです。
<div class="excerpt">
<?php
if ( is_user_logged_in() ) {
$ln = 800; /*show first 800 characters*/
post::get_excerpt($post, $ln = $ln);
} else {
if ( !tools::is_nsfw( $post -> ID ) ) {
the_excerpt();
}else{
echo '<p>' . options::get_value( 'general' , 'nsfw_content' ) . '</p>';
}
}
?>
</div>
更新:これは、htmlフォーマットを表示するために最終的に使用したコードです:
function get_excerpt($post, $ln){
if (!empty($post->post_excerpt)) {
if (strlen($post->post_excerpt) > $ln) {
echo mb_substr(($post->post_excerpt), 0, $ln);
}
} else {
if (strlen($post->post_content) > $ln) {
echo mb_substr(($post->post_content), 0, $ln);
}
}
}
strip_tags と strip_shortcodes を取り除き、コードをより単純化しました。mb_substr 文字列のカットオフ ポイントをフォーマットする方法を理解する必要がありますが、それは別の質問にします。
更新: ここに私が投稿した質問があります -> mb_substr は投稿の抜粋で言葉を切り捨てていますか?