HOME  /WordPress(応用)
 /ビジュアルエディタにコラップス機能(コンテンツの開閉)を実装する
2020年04月08日

ビジュアルエディタにコラップス機能(コンテンツの開閉)を実装する


下記がビジュアルディタで作成したコラップス(コンテンツの開閉トグル)のサンプルです。

下記のボタンをクリックして下さい。コンテンツが下に表示されます。

表示された内容です。

ボタンをもう一度挿入すると閉じます

 

ここでは上記のコラップス機能をビジュアルエディタに追加する方法を解説します。

 このドキュメント利用上の注意点

このドキュメントの中では[]を【】に置き換えて記述しています。

理由は解説に[]のままでショートコードを記述すると、更新処理でショートコード処理が動いてしまうからです。

よってこのドキュメントからソースをコピーする場合は、ペースト後、【】を[]に置き換えて利用して下さい。

またこの機能はBootstrapの機能を利用していますので下記設定は必須です。

 ­サイトにBootstrap3を利用する

 

1.コラップスを作成するショートコードを作成する

functions.phpにコラップスを作成するショートコードを追加します。

/**************************************************/
/* TinyMCE Advancedにショートコードを追加 */
/**************************************************/
function my_scode($postarr) { 
	/*************************************
	 他のショートコードの設定(ここではその設定を省略します)
	 *************************************/
/** コラップス追加のシュートコード ***********/
	$search = '【toggle】';
	$replace= 
	'<div class="toggle"><button class="btn btn-default">表示/非表示ボタン</button></div>
	<div class="toggle-target">
		<p>コラップスエリアです。表やイメージも利用できます<br>尚、ボタンの色はスタイルから設定して下さい。</p>
	</div>';
	$postarr['post_content'] = str_replace($search,$replace, $postarr['post_content'] );
	* コラップス終了 ***************************/ 
 return $postarr;} 
add_filter('wp_insert_post_data', 'my_scode');

■ショートコードは複数登録されるので、上記にはコラップスに関するショートコードのみ記述しています。

■コラップスの構造は、ボタンクラスの「toggle」と、コラップスデータが書かれる「toggle-target」から構成されます。

■上記のプログラムをコピーする時は【】を[]に置き換えて利用して下さい。

 

2.CSSを設定する

2-1.ビジュアルエディタのCSSに下記を追加します。

本テーマのビジュアルエディタのCSSは「editor-style.css」から「my-editor-style.css」に変更しています。

理由は下記ドキュメントを参照してください。

 ブロックエディタ時代にビジュアルエディタを使う方法

 ­親テーマが「editor-style.css」の時のスタイル機能の使い方

 

<my-editor-style.cssの設定>

下図を表現するCSSを定義していきます。

/**********************************************************************/
/* コラップス制御 */
/**********************************************************************/
div.toggle-target{
	margin-top:10px;
	padding:10px;
	border-radius:3px;
	border:1px dashed #008200;}

div.toggle-targetの所はコンテンツエリアを緑の破線枠で囲んでいます。

 

2-2.style.cssの設定

コラップスエリアはフリーエリアにしたい為、スタイルは設定しません。

冒頭のコラップスサンプルは枠付き表の中にコンテンツを入れています。

 

3.jqueryプログラムを作成する

最後はタブデータを切替える為のjqueryプログラムです。

­ ­jqueryプログラムとは

PHPプログラムはサーバのプログラムで、サーバ側で画面を生成しデバイス側に送ります。

しかしサーバ側のプログラムにはユーザが画面をどの様に操作したか?は判りません。

一方、jqueryはユーザがどの様な操作をしたのか?を検知して処理するプログラムです。

 

3-1.jqueryプログラムを作成する

①ルートディレクトリにJSフォルダを作成します。

②その中に「my-jquery.js」ファイルを作成し下記プログラムを登録します。

/* コラップス制御を行う設定 */	
$(function(){
	$(".toggle").each(function(no,element){
		$(element).next().addClass('collapse');
		$(element).click(function(){
			flg = $(this).next().css('display') == 'none';
			if(flg) {$(this).next().collapse('show');}
			else {$(this).next().collapse('hide');}
		});
	});
});

■ページの中に「.toggle」が複数ある事を想定して「.each」メソッドを利用しています。

.each」メソッドとは繰り返し処理を行うメソッドです。

.each(function(no,element)は繰り返し処理の中で「no」はループ回数、「element」は要素が取り出せます。

■要素を見つけたら「addClass(“collapse“)」でBootstrapのコラップスを設定し子要素を非表示にします。

■次に「.toggle」すなわち「element」がクリックされたら、その子要素が表示状態か否かをflgにセットします。

■flgが非表示なら、子要素を「show」にし、表示なら「hide」にして開閉させます。

­ ­メモ

Bootstrapのコラップスには「show」、「hide」以外に「toggle」という命令もあります。

これは表示していたら閉じるし、非表示なら開くという処理をしてくれるコマンドです。

これを使う場合はJqueryプログラムは下記の様になります。

$(function(){
	$(".toggle").each(function(no,element){
		$(element).next().addClass('collapse');
		$(element).click(function(){
			$(this).next().collapse('toggle');
		});
	});
});

こちらの方がプログラムは短くなります。

 

4.具体的な使い方

①コラップスを入れたい所で【toggle】をいれます。
(注意:【】は[]です)

 

②下記の画面が表示されます。

ボタンの中の文字やコンテンツは自由に編集してください。

 

③ボタンの色をスタイルから選択します。

ボタン色の変更は下記ドキュメントの設定が完了している事が前提となります。

 ビジュアルエディタでボタンを表示させる方法

クラス
button.btn-default

button.btn-primary

デフォルト色

button.btn-success

button.btn-info

button.btn-warning

button.btn-danger

button.btn-link

以上でビジュアルエディタの中でコラップス機能が使える様になりました。

以上でこのドキュメントの説明は完了です。

関連ドキュメントは下記の関連記事一覧から探して下さい。


<関連記事一覧>

「tinymce」に関連するドキュメントを表示しています。尚、このページネーションはJquryで制御しています。

このドキュメントではビジュアルエディタでモーダルウィンドウを使ったコンテンツを作成する方法を解説しています。更に1ページの中に複数のモーダルウィンドウ定義があっても対応できるJqueryにしています。

ビジュアルエディタで文書を作成する時、ボタンを作成したい時があります。
ここでは下記のBootstrapのボタンをビジュアルエディタで利用する方法を解説します。

ここでは引用

の設定と使い方を解説します。ポイントは見やすい引用BOXです。

親テーマのビジュアルエディタのCSSが「editor-style.css」でない場合はTinyMCE Advancedプラグインを利用するのに一工夫が必要になります。
ここではその解決方法を解説しています。

2018年末にリリースされたWordPress5.0から標準エディタは「ブロックエディタ(Gutenberg)」に変更になりましたが「ビジュアルエディタ」を使い続ける方法を解説しています。

ビジュアルエディタの操作画面に幾つかのダッシュアイコンボタンを追加したサンプル事例を紹介しています。

ビジュアルエディタでBOXを作成する方法は①表機能を使う②スタイルで設定したBOXを使うがありますが、ここでは表機能を使ってBOX全体がリンク対象になるBOXを作成する方法を解説しています。

ここではビジュアルエディタでタブ切替ができるコンテンツを作成方法を解説しています。更にここでは1ページに複数のタブ要素があっても対応できるjqueryプログラムにしてあります。

TinyMCEのスタイルは1つの段落に対する定義になります。よってこのスタイルで作成したBOXは、改行(Shift+Enter)しか使えません。しかしショートコードという新しい概念を利用すると段落変更(Enter)が使えるBOXを作る事ができます。ここではその作り方を解説しています。

TinyMCEで画像を取り扱うポイントは、画像に枠を付ける場合はどうするのか?と画像のレスポンシブ化は、どの様に実現するか?になります。ここではこれらの設定方法と使い方を解説しています。

このドキュメントではビジュアルエディタの段落、h2~h5及びリンクの設定とリンクの貼り方を解説しています。

TinyMCEではリストとして、オーダリスト

    とアンオーダーリスト

      が用意されていますが、決して使い易いものではありません。そこでこのサイトではTinyMCE Advancedのスタイル機能を使って半角2文字リスト、半角4文字リストを作成する事により、文字種を選ばないリストを作成しました。

ビジュアルエディタで文書を作成した際にどのフォントを使うか?は悩ましい所です。ここではどの様なフォントを指定するとどの様なフォントで表示されるのかを解説しています。

ビジュアルエディタで綺麗な表を作成する為に「TinyMCE Advanced」と「Bootstrap」の表機能を利用しています。ここではそれらの設定方法と利用方法を解説しています。

ここでは整形済みテキスト(pre)の設定と使い方を解説します。整形済みテキストのポイントは見やすいソーステキストの提供です。

TinyMCEのデフォルト設定ではインデントはpタグとimgタグしが使えません。またCSSを更新した時にスーパリロードしないと画面が更新されない等の問題点もあります。ここではこれらの問題点を解決して使い易いTinyMCEの設定方法を解説しています。

ビジュアルエディタのCSS「editor.style.css」を充実させると操作性は良くなりますが、「style.css」を維持する事が大変になります。ここではその管理方法の一例を紹介しています。

TinyMCEの仕様は親テーマのeditor-style.cs、子テーマのeditor-style.cssの順番に読み込みます。ここでは子テーマのeditor-style.cssだけを使う方法を解説しています。

Bootstrapはグリッドデザイン以外にボタンやナビゲーション等の色々な機能を持っており、これを利用するとかなり自由なデザインが可能になるツールです。このBootstrapをダウンロードし、HTTP画面やビジュアルエディタで使う方法を解説しています。