
WordPress様にはお世話になってます。大変便利に使わせて頂いております。
勉強会にも顔を出させていただいて、楽しくやらせて頂いております・・・・が、
本当僕、いっつも思うんですけど、何でブログシステム使ってるのにいちいちHTMLタグ書かなきゃいけないのか。
もう両手釣りそうなくらい<>押して><ですよほんとに。
え?Emmet知らないの?プラグインあるじゃんww
とか言われるけど、タグ打つのが嫌なんですよ。極力打ちたくない。
INDEX
フックを定義しましょう
まず投稿画面に、フォーム表示させる為の準備として
フックを定義しましょう。よく分からないですけど、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; }'.PHP_EOL; echo ''.PHP_EOL; echo ''.PHP_EOL; echo ''.PHP_EOL; echo ''.PHP_EOL; echo ''.PHP_EOL; echo ''.PHP_EOL; echo ''.PHP_EOL; echo '
チェックと保存
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 ''; $arrtmp[$id] = $val[0]; } }'.$key.'
'; echo ''.$val[0].'
'; echo '