質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

2回答

5169閲覧

<!--more-->が機能しない原因を知りたい

TakashiFujieda

総合スコア7

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2016/04/27 00:52

Wordpressで、あるテーマをベースに、サイトをつくっていのですが、

<!--more-->が機能しないので、原因について知りたいところです。

当方の知識としては、htmlが多少わかる程度です。

MyUniversityというテーマを購入して作成中です。
MyUniversity childという子テーマが付属しており、それをテーマとして編集しています。

その元々のデモ作品をベースに変更を加えながら作成しています。

現状では、投稿をまとめたページなどでの、抜粋表示がうまくいかないというのが問題になっています。

抜粋表示において、<!--more-->が投稿中に存在していようがいまいが、50字くらい(55字?)だけ表示されたり、まったくされなかったり、しています。

外観→テーマ編集、Myuniversityのfunction.php のほうで何か確認・編集をすることになるのでしょうか?

原因として考えられることなどあれば、教えてください。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

こんにちは。

トップページに新着の投稿一覧を表示している多くの WrodPress と異なり、MyUniversity のようにトップページを固定ページにしていると、「<!--more-->」がきかないといった現象が起こる場合があります。

その場合には、当該のテンプレートに、グローバル変数「$more」を宣言して

PHP

1<?php 2global $more; // グローバル変数 $more を宣言(ループの前に) 3$more = 0; // more タグまでのみを表示するようにセット(ループの中で) 4the_content("More..."); // 抜粋以降に「More…」を表示する 5?>

と記述することで解決できます。

しかし、MyUniversity はすでに多くのユーザーをもつテーマですので、そのような不具合が存在しているとは考えられません。
これをふまえて、この不具合について考えたとき、MyUniversity が英語ベースのテーマであることが起因しているのではないかとという結論にいきあたりました。

ここで「<!--more-->」がきかないということを考えると、MyUniversity 抜粋のために使われているタグは、「the_content()」ではなく「the_excerpt()」であろうことが考えられます。
もしかしたら、投稿画面上部には下の画像の赤いラインで囲んだアイコン(破線の上下を太い実線で挟んだデザイン)がないということはありませんか。
イメージ説明

また、「the_excerpt()」は、(デフォルトで)55単語を抜粋して表示するタグなのですが、(単語間のスペース区切りで文字数をカウントしているため)日本語のように語句の間を半角スペースで区切らない言語の場合、文字数を正確に判定できず、本文のほとんどを出力してしまうことがあります。
ですので、いちど functions.php に「the_excerpt()」タグ、または「excerpt」が記述されているかどうか検索をしてみてください。

1)「the_excerpt()」タグが記述されていた場合の解決方法
WP Multibyte Patch プラグインをインストールし、有効化してください。このプラグインは、WordPress で日本語のようなマルチバイト文字を使うための環境を最適化してくれるもので、WordPress 日本語版ではデフォルトでインストールされているものです(プラグイン使用方法リンク)。
なお、日本語で使用した際、「More…」が表示されなかったり文字があふれてしまうなどレイアウトの調整が必要になった場合は、「the_excerpt()」タグの後に行にある「return」の値を適宜調整してください。

2)「the_excerpt()」タグが記述されていた場合
なにが不具合の原因なのか僕にはわかりません。あしからず、ほかの賢明なかたの回答をお待ちください。
ただこの場合でも、WP Multibyte Patch プラグインをインストールすれば解決するのではないかと僕は楽観的に考えています。
いずれにしても、英語ベースのテーマを使用する場合、このプラグインをインストールしておいて損はありません。

以上、ご参考いただければ幸いです。

投稿2016/04/27 10:22

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TakashiFujieda

2016/04/28 08:25 編集

どうも詳しくありがとうございます。ご指摘いただいた各項目に関して:トップページ以外の投稿抜粋の固定ページ全てで同じ現象になっています。英語も、55字表示になっています。ただMy Universityのデモの表示だと、柔軟に抜粋時の表示量を調整している(moreが機能している)のに、テーマをインストールして、デモと、jsonファイルというのを実際に取り込んだところで、55字表示になってしまっています。functions.phpのファイルには、excerpt ,the_content などの文字列は存在しません。プラグインは、入れてみますね。また状況が進んだらご連絡します。
TakashiFujieda

2016/04/28 08:28

more のアイコン、赤囲みのものは、存在します
TakashiFujieda

2016/04/28 08:30

WP Multibyte Patch は、すでに入っていました
退会済みユーザー

退会済みユーザー

2016/04/28 10:38

TakashiFujiedaさん、コメント(返信)をいただきありがとうございます。 excerpt や content が functions.php に記述されていないとすると、個々のテンプレートで処理されているのかもしれません。 MyUniversity は有料テーマですので、ダウンロードして該当しそうなファイルを調べてみるというわけにもいかず、具体的にどこをどうするといった指摘はちょっと困難です。 現状、僕のほうからは手の打ちようがありませんが、本件に関してなにかわかったら、また追記しておきます。 あと、WP Multibyte Patch プラグインはインストールされていたようですが、有効化されていますでしょうか。
TakashiFujieda

2016/04/28 11:46

どうもいろいろとありがとうございます。index.phpなどにも入ってないのですし、他の投稿抜粋の固定ページcourses.php などにも入っていません。致命的な部分ではないので、長い目で解決していきたいと思います。ありがとうございます。プラグインは有効化されています。
guest

0

テンプレートの作り方は様々なので「どこ」とは言いにくいのですが、

  1. 「抜粋」を記述している場所で the_excerpt() を使って出力しているか、独自の関数を使っている
  2. function.php で excerpt_length excerpt_mblength で出力をフィルタしている

などが考えられます。
WordPress のテーマ編集は PHP の知識が必要となります。がんばってください!


(抜粋参考)

【WordPressで記事本文を抜粋表示する文字数と文末の[…]を変更する方法 | ホワイトベアー株式会社】
http://whitebear-seo.com/wordpress-excerpt-change/

【WordPress:記事抜粋を表示するthe_excerptの使い方とカスタマイズのまとめ | PressStocker】
http://pressstocker.com/the-excerpt/

【日本語で『the_excerpt』の文字数を変える方法2パターン | sand a lot Web & Music Create [札幌]】
http://www.sandalot.com/日本語で『the_excerpt』の文字数を変える方法2パターン/


(テーマ構造参考)

【WordPress「テンプレート」の優先順位 | 超初心者のサーバー移転とドメイン移管&ついでにWordPressも!】
http://server.change.jp/archives/739/

【WordPressテーマカスタマイズ事始め・基本構造を理解してカスタマイズしてみる - かちびと.net】
http://kachibito.net/wordpress/theme-customizing-1st-step.html

投稿2016/04/27 07:50

kei344

総合スコア69366

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TakashiFujieda

2016/04/28 11:43

いろいろとありがとうございます。excerpt という文字列が、function.php や index.phpなどの中に、見当たりません。なかなか、ちょっと大変そうです。もうちょっと勉強しながらの長期的に解決していこうかと思います。55字は表示されますし、致命的な部分ではないので。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問