メシのタネ

Webプログラミング 備忘録

  • DOMをPHPで操作できたらいいよね

    そうだよね。そう思うよね。JavaScriptでやると、画面がガタついたりするもんね。そうならないようにする方法もあるかもしれないけど、僕はできませんので、サーバー側でなんとかできたらええなぁと思って挑戦したけど、できませんでしたよ。PHP標準でHTMLをDOMにできるらしい今、技[...]

    続きを読む
  • 設計書ってなんで書くの?

    設計書をなぜ書くのかから始めてかれこれ3年近くこの禅問答をやっているわけですが、いまだに答えは出ません。ただ、その禅問答をやる中で設計書に対する取り組み方は大きく変わったので、その一部でも書いていきたい。基本設計はとにもかくにも必要だと思う設計書はいらぬ!という話をよく聞くし、自分[...]

    続きを読む
  • 書ききってやる。

    久々に書いてみる。久々に文章を書くということをやってみようと思う。伝える作業を観察したいと思ったからそうしたいと考えた。情緒的な文章は基本的にゴミ箱にぽいしてきましたが、情緒的なのも自分だと思う。「文章をかくという作業は、とりもなおさず自分と自分をとりまく事物との距離を確認すること[...]

    続きを読む
  • 普通の会社で2年普通に働いて思う事

    えらい寒くなりました。文句言いながらも現職を続けて2017年12月1日にめでたく2年がたちました。分かりやすいが乱暴に言えばITドカタと呼ばれる業界に入って案件のヒエラルキーの無慈悲さを痛感しながらも、それでもしょうがないと頑張る人たちに心を打たれながら「じゃあ俺も」と頑張れない自分に挫折して、とあ[...]

    続きを読む
  • jQueryUiのDatepicker利用時にminDate設定するとバグる件

    題名の通りなんですが、DatepickerでminDate使うとバグります。また後でキャプチャ見て貰いますけど、灰色の部分が、minDateで設定した日付が反復して出るようになるんですね。こういうの気が付かない人がいるかも知れませんが、ChoromeでminDate設定してる人は気にしてみてくだ[...]

    続きを読む

【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]; } }

関連記事

コメントをお待ちしております