Permalink

WordPressの投稿画面で、タイトルの下にカスタムフィールドの入力欄を追加する

公式ディレクトリに上げました

タイトル欄の下に、1個だけカスタムフィールドのフィールドが足したかったのです。

edit_form_after_title というフックを使います。 edit_form_after_editor というフックもあるのでエディタ直下の時に便利。

投稿タイトルの真下にフィールド

投稿タイトルの真下にフィールド

参考にさせていただいたのは、metabox – How do I position meta_box on post edit screen? – WordPress Answersです。

3行目からがフォームの出力です。
6行目: $postが空だったりポストタイプが投稿じゃなかった場合は終了
9行目: 何もない場合は空の値をセット
12行目: 出力

21行目からがフォームの内容がポストされた時の保存です。
23行目: オートセーブの仕組みに対応
26行目: 権限のチェック
31行目: 保存してます
33行目: 保存ボタンが押された際、値が空だったら削除してます

edit_form_after_editor の場合はこちら。

Permalink

wp_enqueue_styleをfunctions.phpに素で書くとエラーが出るのを回避

TwentyTwelveテーマの子テーマを作る場面に出会いました。ウェブルジョンさんの下記の記事を参考に、functions.phpに下記を書き込んだところ、エラーが出てしまいました。

参考にした記事

Twenty Twelveの子テーマをつくるときに wp_enqueue_style を使ったほうが幸せになれるかもしれないという話 | Webourgeon

書いたコード

<br />
if ( !is_admin() ) {<br />
	wp_enqueue_style( 'twentytwelve-style', get_template_directory_uri() . '/style.css', array(), date('YmdHis', filemtime(get_template_directory() . '/style.css')) );<br />
	wp_enqueue_style( 'twentytwelve-child-style', get_stylesheet_uri(), array('twentytwelve-style'), date('YmdHis', filemtime(get_stylesheet_directory() . '/style.css')) );<br />
	wp_enqueue_style( 'twentytwelve-ie', get_template_directory_uri() . '/css/ie.css', array(), date('YmdHis', filemtime(get_template_directory() . '/css/ie.css')) );<br />
	$wp_styles->add_data( 'twentytwelve-ie', 'conditional', 'lt IE 9' );<br />
}<br />

出たエラー

Notice: wp_enqueue_style が誤って呼び出されました。スクリプトおよびスタイルは wp_enqueue_scripts、admin_enqueue_scripts、init フック以降のみに登録・キュー追加できます。 詳細は WordPress のデバッグをご覧ください。 (このメッセージはバージョン 3.3 で追加されました) in /var/www/vhosts/hiheyhoi/wp-includes/functions.php on line 2959

何かフックしてくれという感じですので、関数にして、一番最初の wp_enqueue_scripts フックに登録したところ、エラーは表示されなくなりました。

wp_enqueue_scriptsによれば、フロントエンドでのスタイルのためにこのフックを使いましょう(wp_enqueue_scripts is the proper hook to use when enqueuing items that are meant to appear on the front end.)ということで、if(!is_admin()){}が取れました。また、 global $wp_styles; の追加が必要でした。

最終的にfunctions.phpに追記したもの

<br />
function add_child_styles()<br />
{<br />
	global $wp_styles;<br />
	wp_enqueue_style( 'twentytwelve-style', get_template_directory_uri() . '/style.css', array(), date('YmdHis', filemtime(get_template_directory() . '/style.css')) );<br />
	wp_enqueue_style( 'twentytwelve-child-style', get_stylesheet_uri(), array('twentytwelve-style'), date('YmdHis', filemtime(get_stylesheet_directory() . '/style.css')) );<br />
	wp_enqueue_style( 'twentytwelve-ie', get_template_directory_uri() . '/css/ie.css', array(), date('YmdHis', filemtime(get_template_directory() . '/css/ie.css')) );<br />
	$wp_styles->add_data( 'twentytwelve-ie', 'conditional', 'lt IE 9' );<br />
}<br />
add_action( 'wp_enqueue_scripts', 'add_child_styles' );<br />

感想

WordPress/wp-includes/script-loader.php at 3.5.1 · WordPress/WordPress · GitHubを見ると、

function wp_enqueue_scripts() {
	do_action('wp_enqueue_scripts');
}

となっており、WRAPしているだけ。その直前のコメントには、

* Allows plugins to queue scripts for the front end using wp_enqueue_script().
* Runs first in wp_head() where all is_home(), is_page(), etc. functions are available.

とあるので、is_home()などの条件分岐タグを使いたいときには、initアクションフックではなく、こちらの方がいいですよ、そのために、do_actionするだけの関数も作りましたよ、ということなのかな、と思いました。間違ってるかもですが・・・

WordPressの実行フローを視覚化してみる | Simple Colors

Permalink

カスタム投稿タイプの記事の一覧をカスタムタクソノミごとに表示する

wordpress-logo-notext-rgb

フォーラムのお母様こと、@gatespace_kさんのWordPressでカテゴリ(タクソノミー)毎に投稿を表示 | Gatespace’s Blogを参考にさせていただきました。

ここでは、とあるカスタム投稿タイプの記事一覧をそのカスタム投稿タイプに紐付いたカスタムタクソノミ別に出しています。

  • カスタムタクソノミ1
    • 記事1
    • 記事2
    • 記事3
  • カスタムタクソノミ2
    • 記事4
    • 記事5
    • 記事6

みたいな感じで。

Permalink

mysqldumpしたファイルをローカルのMAMPにインポートする

WordPressの環境お引越しのメモ。ローカルに新しく、本番と同じものを作る時のメモ。

参考にさせていただいたのは、WordPress の引っ越し方法色々 | dogmap.jpです。

dumpファイルをよきところに置いて、

./mysql -u root -p DB名 < パス/ダンプしたファイルの名前.sql;

Permalink

2012年の僕とWordPress。あとWP3.5の隠れ追加便利機能やってみたのおまけ付き。 #wacja2012

wordpress-logo-notext-rgb

すっかり遅くなってしまって大変申し訳のない、WordPress Advent Calendar(運営は高校生の高橋さん!)の中に位置づけたい記事でございます。

今年は一年間、WordPressと一緒に過ごしてきました。WordPressのことを考えなかった日はなかったと思います。わっと振り返りたいと思います。

Continue Reading →