• 現在、テーマPrincipleを使用しています。
    記事を書く時にmoreタグを使用し、moreタグ以降の文章は隠したいのですが、
    実際、moreタグを使用しても全文表示されてしまいます。
    そこでネットで解決策を調べ

    <?php global $more; ?>
    <?php $more = false; ?>
    <?php the_content(”,true); ?>

    や、

    <?php global $more; $more=false; ?>
    <?php the_content(‘Read More’); ?>

    をsingle.PHPに追加すると解決すると書いてあったのですが、
    その通りにしても解決しません。
    moreタグ以降は隠れて「続きを読む」が表示されるのですが、
    実際に「続きを読む」をクリックしても残りの文章が表示されなかったりします。

    宜しくお願い致します。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • こんにちは、

    投稿に<!--more-->を記述して、投稿ページを開くと、続きだけでなく全文が表示されてしまうが、トップページで表示している分は、投稿ページでは表示しないようにしたい

    という意味でいいんですよね

    <!--noteaser-->

    を投稿に追加すると、投稿ページでは、トップページの序文は、表示されなくなります。

    トピック投稿者 sakurai1234

    (@sakurai1234)

    こんにちは。ご返信有難うございます。

    >>投稿に<!–more–>を記述して、投稿ページを開くと、続きだけでなく全文が表示されてしまうが、
    >>トップページで表示している分は、投稿ページでは表示しないようにしたい
    >>という意味でいいんですよね

    説明下手で申し訳ありません。
    根本的に私が理解出来ていないのかもしれません。
    <!–more–>を記述すれば投稿ページで<!–more–>以降は隠れると私の中では思っています。
    違いますでしょうか?

    例えば、

    今日の天気は
    <!–more–>
    晴れです!

    と投稿で記述すれば、
    「今日の天気は」が投稿ページで表示され、
    その下に「続きを読む」が表示されていて、
    それをクリックすると「晴れです!」がスライドして表示される、
    という感じを私はイメージしています。
    それを実現したいのですが、<!–more–>を記述しても

    今日の天気は
    晴れです!

    とそのまま投稿ページで表示されてしまいます。

    トップページは特に不満はなく、
    投稿ページだけ<!–more–>を使い文章の下の部分を「続きを読む」で隠したいと思っています。

    <!–more–>を記述すれば投稿ページで<!–more–>以降は隠れると私の中では思っています。
    違いますでしょうか?

    <!–more–>以降は隠れるのは、indexやアーカイブページのページです。

    個別投稿を表示する(投稿ページ)では、<!--more-->があってもすべて表示されます。

    今日の天気は
    <!–more–>
    晴れです!

    と投稿で記述すれば、
    「今日の天気は」が投稿ページで表示され、
    その下に「続きを読む」が表示されていて、
    それをクリックすると個別投稿を表示する(投稿ページ)がスライドして表示される、
    という感じを私はイメージしています。

    個別投稿を表示する(投稿ページ)で、続きを読むを表示し、クリックすると「晴れです!」を表示するのは、<!--more-->の機能では出来ません。

    そのような事を実現するサンプル(あくまでサンプル)

    投稿本文にテキストモードで、以下を記述すると

    <details>
     <summary>続きを読む</summary>
    
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
    
    </details>

    Chromeブラウザなどでは、実現できると思います。

    トピック投稿者 sakurai1234

    (@sakurai1234)

    ご回答有難うございます。

    >> <!–more–>以降は隠れるのは、indexやアーカイブページのページです。

    勘違いしていました。
    勉強になりました。
    有難うございます。

    >> 投稿本文にテキストモードで、以下を記述すると
    >> Chromeブラウザなどでは、実現できると思います。

    試したところ、確かにChromeでは実現できました。
    ただやはりIEで見ると、全文表示された状態で「続きを読む」が表示されてしまっている為、
    IEはまだ使用者が多いのでここだけが残念なところです…。

    また、single.PHPを弄って出来ないのでしょうか?
    とりあえずChromeブラウザで出来たのは良かったです。
    有難うございます。

    jQuery等でもできるので、javascript toggle などをキーワードに調べてみてください。

    あとは、テーマによってはそういう機能が組み込み済みのものもあります。

    宣伝ぽくって躊躇しますが、私もテーマを作っていて、

    http://www.tenman.info/wp3/raindrops/

    そのテーマだと、投稿に以下のような構造で、htmlを書くと、同じようなことが出来ます。

    <ul>
    	<li class="raindrops-toggle raindrops-toggle-title">Toggle Title</li>
    	<li class="raindrops-toggle">Toggle Content</li>
    </ul>

    <details> 要素は、Firefox も未実装です。ということで、WebKit エミュレーション。遅くて表示が間抜けというのは我慢してください。

    jQuery(document).ready(function($) {
    	var userAgent = window.navigator.userAgent.toLowerCase();
    	var showText = "続きを読む";
    	var hideText = "隠す";
    	if (userAgent.indexOf("firefox") !== -1 ||
    		userAgent.indexOf("trident") !== -1 ||
    		userAgent.indexOf("msie") !== -1) {
    		$("details").each(function(index, value) {
    			var summary = $(this).children("summary");
    			var others = $(this).children(":not(summary)");
    			summary.css("display", "block");
    			summary.css("cursor", "pointer");
    			if ($(this).attr("open")) {
    			summary.html("▶ " + hideText);
                } else {
                    summary.html("▶ " + showText);
                    others.css("display", "none");
                }
    		});
    		$("details").children("summary").on("click", function(event) {
    			var sblgs = $(this).siblings();
    			if (sblgs.css("display") == "none") {
    				sblgs.css("display", "block");
    				$(this).html("▶ " + hideText);
    			} else {
    				sblgs.css("display", "none");
    				$(this).html("▶ " + showText);
    			}
    		});
    	}
    });

    抜粋表示のときは、<!–more–> と違って、しっかり strip_tags() されるので、get_the_excerpt にフィルタを設定してお使いください。こちらは PHP で。

    トピック投稿者 sakurai1234

    (@sakurai1234)

    nobitaさん

    お作りになっているテーマを教えて頂き有難うございます。
    また新しいブログを作る予定なのでその時はこちらのテーマを使わせて頂きます。

    kjmtshさん

    ご回答有難うございます。
    初心者で何もわからなく申し訳ないのですが、
    上のタグはどこに貼り付けすればいいのでしょうか?function.PHPでしょうか?

    >>抜粋表示のときは、<!–more–> と違って、しっかり strip_tags() されるので
    >>get_the_excerpt にフィルタを設定してお使いください。こちらは PHP で。

    正直、上記の内容も全く分かりませんでした。
    何をどうしたら良いのか分かりません。
    もう少しド素人にも分かる内容で教えて頂けたら幸いです。すいません。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「singleページでのmoreタグ」には新たに返信することはできません。