このサイトで配布しているテンプレートの記事部分をオンマウスすると丈夫に記事の内容が出るのですが、日本語だとうまく表示されません。
表示させる方法を教えてください。
すみません。質問の一覧ページで確認していた為、返信に気がつかずに遅くなりました。
テーマの「index.php」の65行目以降に次の記述があります。
<?php $temp_arr_content = explode(" ",substr(strip_tags(get_the_content()),0,225)); $temp_arr_content[count($temp_arr_content)-1] = ""; $display_arr_content = implode(" ",$temp_arr_content); echo $display_arr_content . '...'; ?>
上記を以下のように変更してみてください。
<?php $contents = preg_replace('!\[([A-z_a-z]+)(?:[A-z_a-z0-9 ="\'-]+)?\](?:.+?\[/\1\])?!', '', get_the_content()); $temp_arr_content = explode(" ",mb_substr(strip_tags($contents),0,225)); if(count($temp_arr_content) > 1) $temp_arr_content[count($temp_arr_content)-1] = ""; $display_arr_content = implode(" ",$temp_arr_content); echo $display_arr_content . '...'; ?>
※デフォルトでHTMLタグは除去されるようになっていますが、ショートコードも除去して表示するようにしました。
※質問が終了してからもフォロー可能ですので、何か不明な点がありましたら回答への返信もしくは下のコメント欄で知らせてください。
ソースを使用して日本語でページ作成されたのでしょうか?
charset="utf-8"
となっている部分を日本語のフォントに指定されてはいかがでしょうか?
charset="shift_jis"
http://www.tagindex.com/html_tag/page/meta_content_type.html
実際に動作を確認してみなかったのですね。
該当箇所には投稿が表示されるようになっていますし、テーマを導入してみると質問にある現象を確認できます。
また、「UTF-8」や「Shift_JIS」は文字コードであって、フォントではありません。(※UTF-8は日本語をサポートしています。)
WordPressの文字コードはUTF-8ですので、日本語を記述したテンプレートファイルの文字コードをShift_JISに変更すると文字化けしてしまいます。
分からないのでしたらコメントするだけにして、回答としては投稿しない方が親切だと思います。
すみません。質問の一覧ページで確認していた為、返信に気がつかずに遅くなりました。
テーマの「index.php」の65行目以降に次の記述があります。
<?php $temp_arr_content = explode(" ",substr(strip_tags(get_the_content()),0,225)); $temp_arr_content[count($temp_arr_content)-1] = ""; $display_arr_content = implode(" ",$temp_arr_content); echo $display_arr_content . '...'; ?>
上記を以下のように変更してみてください。
<?php $contents = preg_replace('!\[([A-z_a-z]+)(?:[A-z_a-z0-9 ="\'-]+)?\](?:.+?\[/\1\])?!', '', get_the_content()); $temp_arr_content = explode(" ",mb_substr(strip_tags($contents),0,225)); if(count($temp_arr_content) > 1) $temp_arr_content[count($temp_arr_content)-1] = ""; $display_arr_content = implode(" ",$temp_arr_content); echo $display_arr_content . '...'; ?>
※デフォルトでHTMLタグは除去されるようになっていますが、ショートコードも除去して表示するようにしました。
※質問が終了してからもフォロー可能ですので、何か不明な点がありましたら回答への返信もしくは下のコメント欄で知らせてください。
適用後うまく表示ができることを確認しました。ありがとうございます。
文字数を変更する場合は225の部分をいじればよろしいですか?
> 文字数を変更する場合は225の部分をいじればよろしいですか?
はい、その数値を変更すると取得する文字数を変更できます。
※ただし、moreタグの後の文章は取得できません。
続きの文章も表示したい事はないかもしれませんが、moreタグより後の文章も取得したい場合は、次のように変更するといいです。(※文字数を指定する数値の変更も必要です。)
<?php $contents = preg_replace('!\[([A-z_a-z]+)(?:[A-z_a-z0-9 ="\'-]+)?\](?:.+?\[/\1\])?!', '', $post->post_content); $temp_arr_content = explode(" ",mb_substr(strip_tags($contents),0,225)); $display_arr_content = implode(" ",$temp_arr_content); echo $display_arr_content . '...'; ?>
※「get_the_content()」の代わりに「$post->post_content」を利用します。
【※コード訂正済み※】
「$post->post_content」を使う場合は、moreテキストを削除する必要がありませんので、「if(count($temp_arr_content) > 1) $temp_arr_content[count($temp_arr_content)-1] = "";」を削除しました。
適用後うまく表示ができることを確認しました。ありがとうございます。
2013/04/23 23:18:56文字数を変更する場合は225の部分をいじればよろしいですか?
> 文字数を変更する場合は225の部分をいじればよろしいですか?
はい、その数値を変更すると取得する文字数を変更できます。
※ただし、moreタグの後の文章は取得できません。
続きの文章も表示したい事はないかもしれませんが、moreタグより後の文章も取得したい場合は、次のように変更するといいです。(※文字数を指定する数値の変更も必要です。)
※「get_the_content()」の代わりに「$post->post_content」を利用します。
2013/04/24 08:21:24【※コード訂正済み※】
「$post->post_content」を使う場合は、moreテキストを削除する必要がありませんので、「if(count($temp_arr_content) > 1) $temp_arr_content[count($temp_arr_content)-1] = "";」を削除しました。