| ブログトップ | CMS関連 | PHP関連 |

プラグイン作るときは自動保存に注意【WordPress】

WordPressにて投稿フォームに設置するようなプラグインを作る場合は、自動保存に注意しましょうというメモ。

投稿フォームに設置するということは

add_action('save_post', 'hoge_save');
function hoge_save( $post_id ) {
	$wpdb->query("UPDATEやINSERTのSQL");
}

みたいな保存用のプログラムを書くことになると思うのですが、問題は自動保存。

この「add_action('save_post', '実行する関数名');」というのは、ボタンを押して保存するタイミングだけでなく、自動保存時にも実行されてしまうのです。

自動保存時には処理をしなくて良い場合は

add_action('save_post', 'hoge_save');
function hoge_save( $post_id ) {
	if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) 
		return $post_id;

	$wpdb->query("UPDATEやINSERTのSQL");
}

というふうに、関数の初めに

if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) 
	return $post_id;

を追記しましょう。

いや~、自動保存されるたびに、保存されていたはずのデータがリセット、というか空になってしまったので焦りました。

どうも、自動保存ではPOSTされるはずのデータがちゃんと渡されず、空のデータをUPDATEしてしまうみたい。

他のプラグインなどを参考にすると、自動保存用対策の記述がちゃんと書かれているんですけどね・・・

ちゃんと調べましょうということで^^;

このエントリーをはてなブックマークに追加

LINEで送る

nandani | 2012年05月25日 | コメント(0) | トラックバック(1) | CMS関連 | PHP関連

トラックバック

トラックバックURL

トラックバック一覧

[...] [...]

コメントする

※メールアドレスが公開されることはありません。

名前 *
メール*
URL
Copyright(c) 2010 - 2017 ダリの雑記