タグ

ブックマーク / www.sandalot.com (8)

  • WordPressで予約投稿失敗の原因究明のため、cron.phpを読んでみました |

    前回はwp-cron.phpを読んでみましたが、今回はcron.phpです。 このファイルは「wp-includes」フォルダにあり、WordPressの擬似CRON関連の関数を記述しています。 wp_schedule_single_event CRONジョブのリストに新しく追加するための関数です。 予約投稿など、定期的なCRONジョブではなく、1度だけ実行されるものに使います。 この関数の引数は以下のように定義されています。 function wp_schedule_single_event( $timestamp, $hook, $args = array()) { 「$timestamp」は実行時刻、「$hook」は固有のCRONジョブを表す文字列、「$args」はその他のパラメーターです。 wp_schedule_event 定期的なCRONジョブを設定する関数です。 functi

  • WordPressで予約投稿失敗の原因究明のため、wp-cron.phpを読んでみました |

    WordPressには記事を書いてから即時公開せず、特定の時間に記事を公開する予約投稿という機能があります。 が、それを設定しておいても何らかの原因で失敗することが多いようです。その対処法については、Google等で検索すると多数のサイトが発見できます。 ただ具体的・根的な原因などの情報は非常に少ないように思いました。 というわけで、今回はその原因を究明するためWordPressのソースを読んでみました。 かなり開発者向けの記事だと思います。 WordPressCRONとwp-cron.php WordPressではCRONジョブ(毎時、毎日のように定期的にサーバーに何らかの動作を行わせる設定)を擬似的に行なう機能があります。 通常CRONジョブというとサーバーの設定で行います。 が、サーバーによってはそれが設定出来ない場合もあるので、WordPressがその機能を実装してくれていると

    WordPressで予約投稿失敗の原因究明のため、wp-cron.phpを読んでみました |
  • TwentyTwelveを非レスポンス化してみました |

    最近、自分が直接的に運営に関わっているWebサイト(WordPressベース)のリニューアルをしました。その際、研究も兼ねてWordPress標準テーマ「Twenty Twelve」を基に制作してみました。 いろいろと勉強になったことは多かったのですが、特に「Twenty Twelve」のレスポンスの構造を知ることが出来たのが良かったなと。 というわけで、あまり需要は無いと思いますが、Twenty Twelveの非レスポンス化の方法を書いてみたいと思います。 Twenty Twelveの特徴 改めてTwenty Twelveの特徴を簡単に書くと、ざっと書くと以下の様なことなどが挙げられます。 レスポンシブ対応(この記事のテーマでもありますが。) デザインがとてもシンプル ホームページのみに適用されるウィジェットがある リンク・引用・アサイド・画像など、投稿フォーマットが多彩 IE7、IE8

  • WordPressで外部入力フォームを作るための関数などいくつか |

    WordPressの入力画面はあまりカスタマイズできるものではありません。 カスタムフィールドの入力項目をいろいろと編集できるWordPressプラグイン「カスタムフィールドテンプレート」なども、頑張ればデザイン上のカスタマイズは結構出来ます。が、かなり苦労しますし、あくまでカスタムフィールドの話です。 実際にWordPress標準のものとは別に入力フォームを作る機会が最近ありました。 というわけで、その時に使った中から必要なWP関数をいくつかご紹介いたします。 データベースへの接続とログインチェック 恐らく、自分でMySQLホスト情報を設定して、データベースに接続することで、外部からの入力は可能になると思われます。 が、それは少し大変です。 なので、以下のようにWordPressのファイルをrequire_onceで読み込むことで、簡単にデータベースに接続できます。 require_on

  • ユーザーを追加すると同時に、自動的に新規投稿をする方法 |

    WordPressの管理画面でユーザーを追加した時に、「ユーザーが追加されました!」などという投稿をしたい場合がたまにある。それを自動的に行う方法。 以下のように、アクションフック『user_register』にコードを追加する。 function auto_post($user_id) { $user_info = get_userdata($user_id); $my_post = array(); $my_post['post_title'] = 'ユーザーが追加されました!'; $my_post['post_content'] = $user_info->first_name.'さんが追加されました。'; $my_post['post_status'] = 'publish'; $post_id = wp_insert_post( $my_post ); } add_action(

  • WordPressで新規投稿時に、別なカスタム投稿も追加する方法 |

    最近の制作において、新規に投稿した時に別なカスタム投稿タイプも同時に追加、という動作が必要なことがありました。 ここでいくつか迷った件があったのでそれを書いてみたいと思います。 投稿時のアクションフック WordPressで投稿する際に使えるアクションフックには以下のようなものがあります。 edit_post save_post wp_insert_post あと、関連のWP関数としては『wp_publish_post($id)』というのがあります。これは、引数に与えたIDの記事を公開にする関数です。これが呼び出された時には上記のアクションフックが順に呼び出されます。 最初、上記のアクションフックの中で知っていたのがedit_postとsave_postの2つだったので、まず前者を使って以下のような関数をfunctions.phpに記述しました。 function modify_movie

  • WP関数『wp_insert_post』に含まれるフィルターフック3つ |

    以前、WP関数wp_insert_post内で使われているアクションフックについて書きましたが今回はフィルターフックについてです。 完璧に理解したわけでも無いので、判った範囲です。 フィルターフック『wp_insert_post_empty_content』 記事の新規追加または更新時に投稿のタイトルや内容が空かどうかを確認する部分で使われています。 WordPressでのサイト制作時に使うことはあまり無さそうです。 フィルターフック『wp_insert_post_parent』 恐らく親記事のIDの設定をしているということだと思います。 使う時はこんな感じ。 function post_function($post_parent, $post_id){ //処理 return $post_parent; } add_filter('wp_insert_post_parent', 'pos

  • WP関数『wp_insert_post』に含まれるアクションフック5つ |

    WordPressの『wp_insert_post』は、アクションフックとしてのものと関数としてのもので別々に存在しています。 もちろん完全に別なものというわけではなく、関数『wp_insert_post』の最後でアクションフックが『do_action(‘wp_insert_post’, $post_ID, $post);』として記述されています。 つまり関数『wp_insert_post』を使って投稿する→最後にアクションフック『wp_insert_post』が呼び出される、という構造になっています。同じ名称なので、間違わないように注意する必要がありますね。 で、アクションフック『wp_insert_post』についてはその部分で呼び出されるだけなので、特に言うことはないですが、関数『wp_insert_post』については300行程度(WordPress3.5において)と、結構長めの記

  • 1