date. 2012/10/18

category. WordPress

カスタムフィールドなどを使うときにタイトルを使用しない場合や、
タイトルには決まった値(カテゴリ + 〇〇)などの場合にタイトルを自動化する方法です。

参考にさせて頂いたサイトの方法だと自分の環境だと、一度目の保存時にはタイトルは入らず、二度保存した場合にのみ上手くいったので少し変更されてもらいました。

今回とった方法は直接$_POSTの中を探していく方法ですので、様々な時に使用できると思います。

今回はカスタムフィールドを使っていて、名前は『fields』でした。

function replace_post_title($title) {
	global $post;
	//post_typeを判定(post, page, カスタム投稿)
	if( $post->post_type == 'test' ){
		if(!empty($_POST['fields'])){
			//カスタムフィールドを展開する
			foreach ($_POST['fields'] as $key => $value) {
				//タイトルに付けたいフィールド名を指定する。
				if($key == 'test'){
					$title .= $value;
				}
			}
		}
	}
	return $title;
}
add_filter('title_save_pre', 'replace_post_title');

と、することで自動でタイトルをつけることが出来ます。

参考サイト

関連記事