【WordPress】更新が面倒くさいので管理画面を改造

WordPress様にはお世話になってます。大変便利に使わせて頂いております。
勉強会にも顔を出させていただいて、楽しくやらせて頂いております・・・・が、
本当僕、いっつも思うんですけど、何でブログシステム使ってるのにいちいちHTMLタグ書かなきゃいけないのか。
もう両手釣りそうなくらい<>押して><ですよほんとに。
え?Emmet知らないの?プラグインあるじゃんww
とか言われるけど、タグ打つのが嫌なんですよ。極力打ちたくない。

フックを定義しましょう

まず投稿画面に、フォーム表示させる為の準備として
フックを定義しましょう。よく分からないですけど、Codexぐぐってればそのうち分かります。


/* admin_menu アクションフックでカスタムボックスを定義 */
add_action('admin_menu', 'myplugin_add_custom_box');

/* データが入力された際 save_post アクションフックを使って何か行う */
add_action('save_post', 'myplugin_save_postdata');

/* 投稿・固定ページの "advanced" 画面にカスタムセクションを追加 */
function myplugin_add_custom_box() {

  if( function_exists( 'add_meta_box' )) {
    add_meta_box( 'myplugin_sectionid', __( '段落', 'myplugin_textdomain' ), 
                'myplugin_inner_custom_box', 'post', 'advanced' );
 #   add_meta_box( 'myplugin_sectionid', __( '段落', 'myplugin_textdomain' ), 
 #              'myplugin_inner_custom_box', 'page', 'advanced' );
   }
}

次にフォームのCSSとかJSとか整えます。

長そうに見えますが、あれです。単純にHTMLとかCSSとかJSとか
面倒くさいので直書きしているから長いだけです。

よく見るとなんてことありません。分かり易い様にソース内にコード残しておきました。

/* カスタム投稿・固定ページセクションに内側のフィールドをプリント */
function myplugin_inner_custom_box() {

print<<
		.form_contents
		{
			margin-bottom: 20px;
		}
		.form_contents_wrap label
		{
			font-size: 120%;
			margin-bottom: 10px;
			display:block;
		}
		textarea
		{
			width: 50%;
		}
		.form_cotnents input
		{
			height: 1.7em;
			padding: 3px 8px;
			margin: 1px 0;
			width: 50%;
		}
	

	
EOF;

  PHP_EOL;
  // 認証に nonce を使う

  echo ''.PHP_EOL;

  // データ入力用の実際のフォーム
  echo '
'.PHP_EOL; echo '
'.PHP_EOL; echo ''.PHP_EOL; echo ''.PHP_EOL; echo '
'.PHP_EOL; echo '
'.PHP_EOL; echo ''.PHP_EOL; echo ''.PHP_EOL; echo '
'.PHP_EOL; echo '
'.PHP_EOL; echo ''.PHP_EOL; }

チェックと保存

CODEXの内容をほぼコピペです。

/* 投稿を保存した際、カスタムデータも保存する */
function myplugin_save_postdata( $post_id ) {

  // データが先ほど作った編集フォームのから適切な認証とともに送られてきたかどうかを確認。
  // save_post は他の時にも起動する場合がある。

  if ( !wp_verify_nonce( $_POST['myplugin_noncename'], plugin_basename(__FILE__) )) {
    return $post_id;
  }

  // 自動保存ルーチンかどうかチェック。そうだった場合はフォームを送信しない(何もしない)
  if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) 
    return $post_id;

  
  // パーミッションチェック
  if ( 'page' == $_POST['post_type'] ) {
    if ( !current_user_can( 'edit_page', $post_id ) )
      return $post_id;
  } else {
    if ( !current_user_can( 'edit_post', $post_id ) )
      return $post_id;
  }

  // 承認ができたのでデータを探して保存
  for($i = 0; $i < count($_POST); $i++) {
  	add_post_meta(
  		$post_id,$_POST["h".$i."_paragraph_t"],
  		$_POST["h".$i."_paragraph_v"]
  		);
  }


   return $mydata;

}

テーマ側

やっぱ上手く説明できんもんですが、これでラストです。
これをやると、自分の場合更新が比較的楽になるような気がしました。
ほんで、これがひっさーーーーしぶりの記事になります。

			$headline = get_post_meta(get_the_id());
			$arrtmp = array();
			foreach($headline as $key => $val)
			{
				//--_thumbnail_idと_wp_old_slugはget_post_metaじゃないので出力されてるかもしれない

				if(!preg_match("/^_/",$key))
				{
					$id = $post->ID;
					echo '
'; echo '

'.$key.'

'; echo '

'.$val[0].'

'; echo '
'; $arrtmp[$id] = $val[0]; } }
スポンサーリンク

この記事が気に入ったら
フォローしよう

最新情報をお届けします

おすすめの記事