HOME  /WordPress関数
 /フィルターフック:wp_insert_post_data
2020年02月29日

フィルターフック:wp_insert_post_data

フィルターフック:wp_insert_post_dataとは

アクションフックとフィルターフックの違いは下記を参照してください。

­ ­アクションフック、フィルターフックの違い

 

wp_insert_post_dataはフィルターフックで、WordPressエディタで「下書きとして保存」や「更新」ボタンを挿入したタイミングで、投稿データをユーザプログラムに渡してくれます。

 

例えば記事中に[sumple]という文字列を書き「更新」ボタンを押すと、ユーザプログラムでこの文字列を探して、別のコードに変更する事ができます。

この機能を利用する事により、ビジュアルエディタでは記述できないコードを書くことができる様になります。

 

wp_insert_post_dataのサンプル

functions.phpには下記の様なプログラムを記述します。

function my_scode($postarr) {
	$search = '[sumple]';
	$replace= 
			'<div class="my_memo">
				<p>&shy;<span class="dashicons dashicons-edit"> </span>&shy;メモ</p>
				<p>このBOXは段落替え(Enter)が使えます。</p>
			</div>';
	$postarr['post_content'] = str_replace($search,$replace, $postarr['post_content'] );
add_filter('wp_insert_post_data', 'my_scode');

※1.$searchには検索文字列を入れます。

※2.$replaceには置き換えたい文字列を入れます。

※3.str_replaceで $postarr[‘post_content’]の中を検索文字列で検索し、置き換えたい文字列に変更します。

尚、上記に関連するCSSは下記になります。

div.my_memo{
	margin:5px 0;
	padding:10px;
	border-radius:5px;
	background-color:#f5f0cf;
	overflow:auto; /*画像のはみ出しをなくす指定*/
	max-width:100%;
	font-size:14px;font-size:0.875rem;line-height:1.5em;letter-spacing:0.8pt;}

投稿記事の中に[sumple]を入れ、更新ボタンを挿入すると下記にようなBOXが表示されます。

­ ­メモ

このBOXは段落替え(Enter)が使えます。

 

このサイトで、wp_insert_post_dataを使っている所

下記URLを参照してください。

­ ­TinyMCEで段落変更(Enter)が使えるメモBOXを作る

 ­TinyMCEで色々なタイプのBOXを作る

­ ­TinyMCEにタブ機能を実装する。

­ ­TinyMCEにBootstrapのコラップス機能を実装する。

­ ­TinyMCEにBootstrapのモーダルウィンドウを実装する。

 ­TinyMCEに自作のモーダルウィンドウを実装する