
みなさんこんにちは! ガノー(Ganohr)です! (≧▽≦)
当サイトは‘ワードプレス’(WordPress)で運用しています。
とくに、当サイトの場合記事内に更新履歴を入れ込んで、修正や追記などがいつおこなわれたか明示しています。
ただしこれは、必要としないかたも多い情報です。
そこで、『Ganohrs Toggle Shortcode』(ガノーのトグル・ショートコード)を開発し、ワードプレスのプラグインとしてリリースしました。

この記事では
Ganohrs Toggle Shortcodeのインストール方法と使い方を解説します!
更新履歴
2022/11/19 本文を微修正
2022/11/17 Ver0.1.2を公開しました
2022/11/09 Ver0.1.0を公開しました
2022/11/08 Ver0.0.3を公開しました
2019/09/26 現行のバージョンに合わせて記事を更新
2019/09/25 Ver0.0.2を公開しました
2018/06/09 本文を微修正
2018/06/07 WordPress公式リポジトリに同プラグインが公開されました
2018/06/06 公開
目次
- 1.最新版0.1.0はSEOフレンドリーになりました。その他の機能など
- 1.1.SEO効果を求める方へ
- 1.2.「Fix Autoformat」機能を搭載しました
- 1.3.Gutenbargエディター(新ブロックエディタ)に対応
- 2.最新版0.1.2はAMPにより強固に対応しました
- 3.0.0.3の特徴
- 3.1.detailsタグの採用により、折りたたみ上限がなくなりました
- 3.2.動作可能なテーマはCocoonとLion Media、その他
- 3.3.WordPress6.1&PHP7.4.28、及びPHP8.1.12での動作を確認しました
- 3.4.Output CSS When None AMP機能を搭載しました
- 3.5.0.2.0からはDetails Defaultスタイルを搭載しました!
- 3.6.0.2.1からは数値のsuffixを除去する機能が追加されました
- 4.折りたたみ機能が活躍する場面
- 5.折りたたみ機能の実践例
- 5.1.折りたたみ機能の実践例1 - 折りたたみ可能な文章を表示する
- 5.2.折りたたみ機能の実践例2 - 最初から折りたたんでおく例
- 5.3.折りたたみ機能の実践例3 - 広告をユーザー自身で非表示可能にする例
- 6.折りたたみ機能の呼びだしかた
- 6.1.通常の呼びだしかた
- 6.1.1.コード例
- 6.1.2.実行例
- 6.2.最初から折りたたんでおく場合
- 6.2.1.コード例
- 6.2.2.実行例
- 6.3.複数の折りたたみ表示をおこなう場合
- 6.3.1.複数の折りたたみ表示をおこなう場合 - 失敗例
- 6.3.1.1.コード例
- 6.3.1.2.実行例
- 6.3.2.複数の折りたたみ表示をおこなう場合 - 成功例
- 6.3.2.1.コード例
- 6.3.2.2.実行例
- 6.4.suffixの補足
- 6.4.1.コード例
- 6.4.1.1.CSS定義
- 6.4.1.2.ワードプレス記述
- 6.4.2.実行例
- 7.折りたたみ機能のワードプレスへの導入手順
- 8.Ganohrs Toggle ShortcodeをAMPページでも有効にする方法
- 8.1.Simplicity2 / CocoonでのAMPページ用スタイルシートへ折りたたみ機能用のCSSを追加する操作例
- 9.最後に
最新版0.1.0はSEOフレンドリーになりました。その他の機能など
このプラグインは、AMP対応で軽量なものを目指して開発しています。
その一環で、SEOフレンドリーな機能である「CSS Enqueue Type」の指定を可能にしました。
SEO効果を狙いたい方は、「Enqueue Type: Enqueue」を指定してください。
これを行うと、折りたたみを行うためのCSS読み込みを必要になった位置で行うため、ページロード時にブロッキングされません。
ただし、CSSをユーザーがカスタマイザー経由で修正することが難しいため「Enqueue Type: Head」を指定できるようにしています。
SEO効果を求める方へ
このプラグインは『Autoptimize』を用いても正しく動作します。
より高いSEO効果を求める方は、導入を検討されて下さい。

なお、本プラグイン開発者は以下のアドレスよりSEOアドバイスやSEO施策サービスを提供しています。

「Fix Autoformat」機能を搭載しました
WordPressにはオートフォーマット機能があります。これらは以前のブロックエディタの名残であり、WordPressを敬遠する方々の最大の難敵と言えるでしょう。
オートフォーマットは度々、必要で意味のあるHTMLコードやスタイルを破壊します。
これは主に、折りたたみを行いたいコンテンツの前後の空白を無断で削除したり、逆に余計に追加したり、様々な不具合をもたらしてきました。
そこでオートフォーマットにより破壊されたコードが混入しても、ある程度その破壊されたコードを除去してレイアウトする機能を実装しました。
といっても「<p>
タグ」や「<br>
」タグ程度しか修復できませんが、レイアウトが崩れたり、余計な空白が開く現象が改善します。
Gutenbargエディター(新ブロックエディタ)に対応
これまでのコードエディタだけでなく、Gutenbargエディタでも問題なくショートコードを利用できるようになりました。
ショートコード欄を追加して入れ込むことも、「段落」欄に直接書くことも出来ます。
上記のオートフォーマットを対策しているため、かなり利便性の高いショートコードになっていると思います。
最新版0.1.2はAMPにより強固に対応しました


上記2プラグインで簡単にAMP化できる機能を実装しました。
これらのプラグインを利用する場合は、「Output CSS When AMP」を「Yes」にしてください。

または上記のAMP対応テーマを利用している方は、オプションページから「Output CSS When AMP」を「No」にしたあと、「Minified CSS」をコピーし、AMP用のスタイルシート領域に追加してください。
※ 外観→テーマ編集→amp.cssを編集してください。
もしくは「Details」スタイルを利用していれば、配色は通常のテキストとなりますが、そのまま動作しますので難しいことをしなくても構いません。
0.0.3の特徴
今回からCSSベースの折りたたみの実装からdetails
タグによる実装を搭載しました。
detailsタグは現状の殆どのスマホとPC用のブラウザで動作します。CSSベースの実装は古いブラウザでも動作しましたが、今後はCSSベースの折りたたみの実装はメンテナンスしない予定です。
detailsタグの採用により、折りたたみ上限がなくなりました
CSSベースの実装では、回避的に折りたたみ機能を実装していたため、1記事内で最大20件の折りたたみしかできませんでした。
details
タグを採用したことにより、折りたたみの上限をなくしましたのでご活用下さい。
動作可能なテーマはCocoonとLion Media、その他
CSSベースの折りたたみではテーマ別の相性問題がありましたが、detailsタグを採用したことでこれがなくなりました。
現在、実際に動作を確認しているテーマ以下のとおりです。
【Ganohrs Toggle Shortcodeが動作するテーマ】
- Cocoon
- Simplicity2
- Lion Media
※ その他のテーマでも基本的に動作します。動作しなかったテーマがあればコメントで教えてください。
WordPress6.1&PHP7.4.28、及びPHP8.1.12での動作を確認しました
PHP7のセキュリティアップデートが、2022年11月28日で終了する予定です。
そこでWordPress最新の6.1及び7系最新の7.4.28、8系では8.1.12で動作するよう改修しました。
Output CSS When None AMP機能を搭載しました
これまで独自のCSSを追加するか否かを、AMPモードかどうかだけでしか制御できませんでした。
0.2.0からは、非AMPモードでもCSSを追加するか否か制御できます。
例えばCSSをより小さくしたい場合に、「Output CSS When None AMP」及び「Output CSS When AMP」を「No」にし、Minified CSSをコピーし、使用しないSuffixの定義を除去したものを子テーマのCSSやカスタマイザーの追加CSS、または、amp.css等に追加することでCSSを変更できます。
まあ、デザインのカスタマイズを行いたい場合にもCSSが読み込まれなくなるため便利でしょう。
0.2.0からはDetails Defaultスタイルを搭載しました!
0.2.0の目玉機能としてDetails Defaultスタイルを搭載しました!
このスタイルは一つのスタイルで複数のスタイルの折りたたみを使い分けることができます。
default
normal
black
blue
brown
gray
green
ice
navy
pink
purple
red
white
yellow
gold
shock
vivid
line
hatena
0.2.1からは数値のsuffixを除去する機能が追加されました
detailsスタイルを利用すれば、数値で指定していたsuffix指定(古い非detailsスタイルで利用されていた)を除去し、現状推奨しているdetails defaultスタイルでもそのまま表示できるよう機能を実装しました。
アップデート後、この機能は強制的にONになりますが、不要な場合や不具合が出た場合設定から無効化してください。
折りたたみ機能が活躍する場面
折りたたみ機能は、さまざまな利点があります。
そのため、いろいろな活用ができます。
- サイトの更新履歴など、知りたい利用者だけがみればよい情報を掲示するような場面
- 漫画や小説、映画、ドラマなどのネタバレ要素を、最初は非表示にしておき、ユーザーがクリックしたら表示するような場面
- クイズや設問などを表示し、折りたたんだ中に答えを記述しておき、ユーザーが簡単に答え合わせを可能にするような場面
- 広告を設置する際に、ユーザーが折りたたみ機能を使って非表示にできるような場面
折りたたみ機能の実践例
折りたたみの実践例を紹介します。
折りたたみ機能の実践例1 - 折りたたみ可能な文章を表示する
注意
- これは折りたたみ機能の実践サンプルです。
- これは折りたたみ機能の実践サンプルです。
- 重要な事なので2回言いました。
- この文章を読んだ方は、ラベルをクリックしてこの文章を非表示にできます。
折りたたみ機能の実践例2 - 最初から折りたたんでおく例
Q : パンはパンでも食べられないパンはなんだ?
折りたたみ機能の実践例3 - 広告をユーザー自身で非表示可能にする例
スポンサーリンク
なお、広告をユーザーが非表示可能にすることは『Googleアドセンス』(Google AdSense)の‘プログラムポリシー’(確認)で許可されています。
対して、「最初から折りたたまれた領域に、アドセンス広告を配置する」と、プログラムポリシー違反になるためご注意ください。
それでは次ページにて、同プラグインでの
「折りたたみ機能の呼びだしかた」を解説します。
簡単な記述で呼びだせます!
WordPressの不具合対応/カスタマイズ¥15,000~
PC歴25年超、SE歴10年超、WordPress運営歴7年超、WordPressエンジニア歴5年超のスキルとノウハウを提供します
当サイト管理人の「ガノー」(Ganohr)は、日本最大手且つ東証一部上場企業が運営するクラウドソーシングサイト『Lancers』にて、認定ランサーとして活動しています。
※ 認定ランサーとはLancersにより様々な能力 ( 高い仕事遂行率・高い顧客満足度・多くの実績、など ) を評価したプロフェッショナルを認定する制度です。
コメント(13件)
コメントを書く
AMPカテゴリの最新記事
Chromiumでウェブサイト後半の文字が壊れるバグを修復するWordPressプラグイン
WordPress6.1にて発生するAMPエラーの解消方法と原因
WordPress 5.9のLazy LoadingでAMP実装エラーが発生した場合の原因と対処法/get_the_post_thumbnail関数
【PC&AMP考慮】WordPress5.5のLazyLoadingを調整する方法
- 2019.12.03
- AMP, JavaScript, WordPress, 初心者向け, 開発者向け,
【ワードプレス】highlight.jsを用い自動でシンタックスハイライトを行う方法【プラグイン不要・AMP考慮】
【AMP】Simple Download Monitorのエラー対処方法【ワードプレス】
Toggle Shortcodeのプラグイン、とても重宝して使わせてもらっております。
さて、Suffix=”5″以降が記事が折りたたまれず、チェックボックスが表示されるのですが、これは使い方の問題でしょうか?
ちょっとどうしていいのかわからず、困っております。
ご質問ありがとうございます。現状は5つまでとなっています。
ただし、次回アップデートで対応しますので、少々お待ち下さい。
この仕様は、ページング(複数ページへ分割)される、当サイトの運用に合わせているためです。
styles.cssを編集できるなら、プラグイン内部のCSSをコピーして、suffixの6~以降を定義することもできます。
最新版が公開されました。
20個の折りたたみが可能になっています。
ワードプレスでcocoonを使っています。
Toggle Shortcodeのプラグインも使っていまして、昨年の5月くらいに調整したっきりになっていたのですが、昨日、ワードプレスを5.5.1に更新し、プラグイン関係の更新も合わせて行ったのですが、Toggle Shortcodeで作成していた折り畳みの部分がデザインがおかしくなったり、チェックボックスだけになったりしてしまって困っています。
あまり詳しい方ではないので、何をお伝えすればいいのかもよく分らないのですが、元々はganohrs-toggle-shortcode.cssの内容を調整することで、コントロールできていた気がするのですが、昨年の5月くらいに作成しておいたバックアップの内容を、ganohrs-toggle-shortcode.css内に貼り付けても、症状は変わりませんでした。
勉強不足で恐縮なのですが、どうすればいいか、アドバイスを頂戴できないものでしょうか?
文章が長くなりがちなタイプですので、色んなページで多用してしまっているため、今さらすべての折り畳みを戻すこともできませんし・・・
参考までに、とりあえず・・・ということで直そうとしているページのURLを以下に貼っておきます。
お忙しい最中、大変お手数なのですが、お力添えのほど、どうぞ宜しくお願い致します。
ご使用&ご連絡ありがとうございます。
ver0.0.2(現行最新)はcocoonでの動作が可能です。
ご連絡いただいたページを確認させていただいたのですが、
たぶん[toggle title=”~” load=”~” suffix=”101″]のようになっていると思います。ご相談のレイアウト崩れは、「suffix」への想定外の指定(1~19までか、未指定しか受け付けていない)のために起こっています。
修正方法ですが、
呼び出し方を変更するのは大変ですし、CSSを追加定義する方法もあるのですが、これらの方法では修正するのも今後のバージョンアップの対応も大変だと思います。
そこで、
対処コードを作成しましたので、ご使用のテーマ(cocoonの子テーマへの修正を推奨)の”functions.php”に以下のページに公開しているコードを追加してみてください(コピペで行けるはずです)。
https://note.com/ganohr/n/nf6b8c30b6607
もしもうまく動作しなかった場合functions.phpの修正を元に戻したのち、以下をお教えいただければ再度コードを調整します。
・エラーの内容
・編集画面において、ショートコードを呼び出している記述
正しく動作すればよいのですが…。
以上、よろしくお願いいたします。
おはようございます。
早速のご回答どうも有難うございます。困っていたので非常に助かります。
また、ご多忙の最中、ご面倒をお掛けしてしまい、申し訳ございません・・・。
早速、後ほどトライしてみようと思いますが、1点、教えて頂けないでしょうか?
おっしゃる通り「suffix=101」などと指定しているのですが、「suffix=1」などと、折りたたんだ部分の表示の仕方を変える必要があったため、ganohrs-toggle-shortcode.css内において、「suffix=1」などと違う表示になるように記述していました。
(suffix1などの折り畳み内部は小さい文字の表示/suffix101などの折り畳み内部は標準文字サイズでの表示・・・という具合です。)
今回のワードプレスとプラグインを更新するまでは、suffix1などやsuffix101などもまったく問題なく、意図通りのデザインと表示内容になっていたのですが、今回のバージョンではganohrs-toggle-shortcode.cssは使われなくなってしまっているのでしょうか?
suffix=1などの方のデザインも、ganohrs-toggle-shortcode.cssで調整していたのですが、今回の当該cssの該当箇所を更新前の状態に書き換えても、suffix=1のデザインなども含めて何も変化が見られなかったためです。
何度もお手数をお掛けしてしまい恐縮なのですが、デザイン調整に当たって、他にイジるべきcssがある場合は、どのcssになるのか、教えて頂けると有難いです。
何度も申し訳ございません・・・
お力添えのほど、どうぞ宜しくお願い申し上げます。
お世話になります。
おそらくお仕事中だと思いますので、お手隙の時でいいのですが、ちょっと進展があったのでご報告です。
勉強不足なりに調べていたら「ganohrs-toggle-shortcode-normal.css」でコントロールされていることに気付きました。
元の「ganohrs-toggle-shortcode.css」ではなくなってしまったんですね・・・
そこで、毎回こうなると面倒だな・・・と思いつつなのですが、「ganohrs-toggle-shortcode-normal.css」内に、こちらで使っていた「101~114」を「1~19」の記述の後に、追記したら、チェックボックスだけの「suffix101」などが、「suffix1」などと同じ挙動になりました。
トグルBOXのデザインと、折りたたまれている内容の文字サイズなどはこれからイジってみるところなのですが、少し進展がありましたので、取急ぎ、お知らせする次第です。
・・・ですので、とりあえず先ほどの質問はお気になさらないでいただいて大丈夫です。
お騒がせしてしまい、申し訳ございません・・・。
ちなみに・・・
「用語の解説」的な折りたたみは小さい文字で「suffix1~9」、本文が長くなりすぎて、部分的に(文字サイズなどは変えずにそのまま)折りたたんでおきたいときに「suffix101~114」を使って運用しておりました。
このような使い方を今後も続けるとした場合、バージョンUPの度にこうなってしまうのは、ちょっと厳しい印象なのですが、何かいい方法があるものでしょうか?
とにかく勉強不足ですので、理解できるかどうかが微妙なのですが、何かいい方法があるようでしたら、ご指導いただけると助かります。
ご多忙の最中、お手数をお掛け致しますが、お力添えのほど、どうぞ宜しくお願い申しあげます。
進展があったとのことで良かったです。
基本的にプラグイン内のファイルを更新することは推奨されませんので、Cocoonの子テーマの「styles.css」の中に定義を加えてください。
このファイルはテーマやプラグインのバージョンアップの影響を受けません。
以上、よろしくお願いいたします。
お世話になっております。
アドバイス、どうも有難うございます。
お忙しいところ、初歩的な話にお付き合いいただくことになってしまい申し訳ないです。
勉強不足で恐縮なのですが・・・
子テーマのstyle.cssに・・・というお話はよく聞くのですが、
単純に同じ内容をコピペすれば、ganohrs-toggle-shortcode-normal.cssを元に戻しても、調整内容が反映されるというご意図ということで大丈夫でしょうか?(子テーマのstyle.cssの方が勝つ?)
この辺りがよく分からなくて、cocoonの方も親テーマのcssを編集してしまっているので、バージョンUPがいつも気が重いんです。
あと、すみません・・・
先ほどの調整の話なのですが、試行錯誤しながら、トグルボックスの外観までは復旧できたのですが、最後の最後で、「gnr-tgl-c」で指定していると思っていた、折りたたまれている部分の文字サイズや文字色の調整がどうしても上手く行きません。
※もしかすると、今回のバージョンUP直前もおかしかったかもしれないのですが・・・
この辺りをコントロールするには、どこをイジればいいか、ご指導頂いたりすることは難しいでしょうか?
具体的に書きますと、折りたたまれている中の表記は、展開された時に、「gnr-tgl-w」で指定されているトグルタイトルの色とも違うグレー系の文字色にしたく、suffix1~9についてのみは文字を小さくしたいんです。
初歩的で陳腐な話にお付き合い頂くことになってしまって、大変申し訳ないのですが、ご教示願えると大変助かります。
お力添えのほど、どうぞ宜しくお願い致します。
コメントありがとうございます。
確認しましたが「gnr-tgl-c」の色定義が反映されない原因は
72行目~90行目にかけての「gnr-toggle-c1」などが以前の名前のままになっているとによります。ですので、「gnr-tgl-c1」というように書き換えたらうまくいくのではないかと思います。
また、
基本的にCSSはあとから定義されたもので上書きされますので、サイトに合わせて考慮が必要です。ただし、ひとまずCocoonは、子テーマのCSSは親テーマのCSSより確実にあとから呼び出されます。
ただ、
貴サイトではトグルプラグイン側のCSSがフッターに出力されていましたので、そのまま子テーマにCSSを書いても、呼び出し順序が原因で、文字サイズ程度しか修正の反映がされないでしょう(最後にプラグインのCSSがロードされてしまうため)。
そこで、「style.css」で定義するCSSには、「!important」指定をCSSのセミコロン(;)の前につけます。これによりCSSの呼び出し順序にかかわらず、その定義を優先させられます。
ですので、以下のように書き換えてください。
.gnr-tgl-c
, .gnr-tgl-c1
, .gnr-tgl-c2
, .gnr-tgl-c3
, .gnr-tgl-c4
, .gnr-tgl-c5
, .gnr-tgl-c6
, .gnr-tgl-c7
, .gnr-tgl-c8
, .gnr-tgl-c9
, .gnr-tgl-c10
, .gnr-tgl-c11
, .gnr-tgl-c12
, .gnr-tgl-c13
, .gnr-tgl-c14
, .gnr-tgl-c15
, .gnr-tgl-c16
, .gnr-tgl-c17
, .gnr-tgl-c18
, .gnr-tgl-c19
{
margin-left: 20px !important;
padding: 0px 15px !important;
background: #fbfbfb !important;
font-size: 75% !important;
color: #777777 !important;
}
加えて、
この機会に子テーマのstyle.cssに定義を移すことを強くお勧めします。今プラグイン側に反映しているCSSを、子テーマのstyle.cssへすべて追加するだけで事足りるはずです(近々プラグイン側のバージョンアップを想定しているため)。
修正はあと少しのところまで来ていると思うので、頑張ってくださいませ。
おはようございます。
具体的なアドバイス、どうも有難うございます!
非常に助かります。
近々のバージョンアップ予定がおありの旨も承知しました。
後ほど早速、試してみようと思いますので、またご報告します。
ご親切なご回答、どうも有難うございました。
お世話になっております。
お蔭さまで、表示崩れも一通り改善できました。「!important」を使いまくりましたが・・・
子テーマのstyle.cssへの記述転記も上手く行ったのか・・・
ザッと見る限り、今のところ、変な挙動や表示も見つからないので、大丈夫そうな気がします。
色々とご指導いただき、心から感謝しています。
この度は陳腐なお話に快くお付き合い頂き、どうも有難うございました。
また、貴重なお時間を拝借してしまい、申し訳ございませんでした。
今後とも宜しくお願い致します。
表示がうまくいって何よりです。
開発者としては利用者の方のコメントはとても助かります。
ちょっとバージョンアップを考えているところでしたので、こちらの参考にもなりました。
今後ともよろしくお願いいたします。
(*- -)(*_ _)ペコリ