[ワードプレス] wp_cron(事実は wp_schedule_event)を 利用して 定期的な 作業 夏期
wp_cron()
に イベントを 登録する wp_schedule_event()
ルルイヨングすれば 定期的に すると する 作業を 自動化する 数 ある. (wp_cron()
関数は 定期的 作業を 中断する 時だけ 使うので 定期的 作業を 登録する 焚く 使う 仕事が ない.)
例を 入れば Broken Link Checkerという プラグインは wp_cron
に イベントを 登録して 1時間に たいてい 回ずつ 割れた リンクを チェックする.
私も いくら 前に 定期的に 自動化する 仕事が 生じた. トラフィックを 分析して 見たら, グーグルと ネイバーでは 多い 数価 訪問するのに, Daumでは 訪問数が ほとんど ない のだった. 2012-07-12 トラフィックを 見れば, トラフィックが 下と ようだ.
- グーグル 検索 : 711回
- ネイバー 検索 : 221回
- 次 検索 : 7回
これは 何か 問題が ある. そのため 見るから Daum ブログ 検索で 内 ブログが 検索されるの ない のを 見つけた. ウェブ 検索では 内 文が まどろみ 検索される の ようだったが 彼さえ 何 犬 中 なる の ようだったし, はなはだしくは どうな 文は 内 ブログで コピした 文だけ 検索される 場合も あった. 次 側に お問い合わせを したが 時間が かかるという 返事だけ 来て 後続 返事が 奥地 なかった. (これに 大海は 次に 別に 文を 使う つもりだ.)
そのため 窮余の策で 次 ビューに ブルログルを 登録した. そして 時間が 流れたら 次 ビューで 認知した 文は 検索が なる のだった. 五胡だと! それでは 次 ビューに 文を 全部 だ 送れば なるね!
するが 何 行くのを 考慮すると した. 一応 内 文が 700勝ちどき 過ぎるのに これを 受動で する 件 及んだ 仕業だ.そうだと スクリプトを 組んで 一度に 文を 送る の やっぱり 次 ビュー 側で ゼゼルルダングする 数 ある 馬鹿 ような 仕業である ことだ. 制裁を あうの ないと しても 使用者たちに “あの子は 何か” する ヌンチォングを あう 数 ある. そのため 思った のが, バックグラウンドで プログラムを 回す のだった. 30分に たいてい 個ずつ 次 ビュー IT セクションで トラックバックを 送るように することに した. そのため wp_cronを 使うように なった のだ.
wp_schedule_event()
を 使って 見よう
核心 原理は 次と ようだ.
- 30分に たいてい 回ずつ 作動する 関数を 作る. 私は
trackback_to_daum_view()
という 関数を 作った. - これ 関数を 作動させる
action
を 作る. 私はtbview
というaction
を 作った. こういう 式で 追加して 与える.
add_action('tbview', 'trackback_to_daum_view');
アクション 追加は 毎度 行って 与えると する. 私はfunction.php
で 追加するように した. - これ アクションを
wp_schedule_event()
に 登録する. 下と ような 形式だ.
wp_schedule_event( time(), 'hourly', 'tbview');
登録は たいてい 番だけ すると する.(例えば プラグインなら 活性化する 時.) DB義wp_options
テーブルのoption_name
これcron
イン ローに 保存されること だからだ. 色々 番(回) 登録すれば ゾラ 多く 登録される ことだ.
実行させる 関数を 作る
定木, 今 詳細 説明 入って行く. 一応 実行させる 関数を 作る. 私は 下と 一緒に 作った.
/** * 次 ビューロー トラックバックを 送るの ない ポストを 次 ビューに うつ. */ function trackback_to_daum_view(){ global $wpdb; $querystr = " SELECT $wpdb->posts.* FROM $wpdb->posts WHERE $wpdb->posts.pinged not like '%v.daum.net%' AND $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type = 'post' ORDER BY $wpdb->posts.post_date DESC LIMIT 1 "; $pageposts = $wpdb->get_results($querystr, OBJECT); if($pageposts){ global $post; foreach ($pageposts as $post) { setup_postdata($post); $tb = array( 'title' => get_the_title(), 'excerpt' => get_the_excerpt(), 'id'=> get_the_ID() ); $tb['url'] = 'http://mytory.local/archives/' . $tb['id']; //return getPrintr($tb); trackback('http://v.daum.net/tb/ch/it', $tb['title'], $tb['excerpt'], $tb['id']); } } }
これ 部分では cron
科 構わない 分野が 二 犬 出るのに, Custom Select Queryわ trackback
関数だ. trackback
関数野党 ものすごく 使うこと 楽に なって あるが, Custom Select Query増えた まどろみ 複雑だ. 普通 ワードプレスで ポストを 持って来る 焚く WP_Query クラスを 使用 する. オプションを 通じて 文を 選んで 来るのに, どこに トラックバックを 送ったのかに よって ポストを 呼んで来る 数 あるように する オプションは なかった. そのため Custom Select Queryを 使うと した. サヨングリェは 下と ようだ.
global $wpdb; $querystr = " SELECT $wpdb->posts.* FROM $wpdb->posts WHERE $wpdb->posts.pinged not like '%v.daum.net%' AND $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type = 'post' ORDER BY $wpdb->posts.post_date DESC LIMIT 1 "; $pageposts = $wpdb->get_results($querystr, OBJECT); if($pageposts){ global $post; foreach ($pageposts as $post) { setup_postdata($post); //get_the_title(), the_excerpt(), get_the_ID() のように //post 中で 使う 関数を 使えば なる. } }
関数を 実行させる actionを 登録する
action
銀 ワードプレスで 起る 多様な ‘作動’を 称える 言葉だ. 基本的に 登録されて ある Action Referenceを 見れば 多様な Action
聞く ボール 数 ある. 例えば Template Actionにはget_header
ような Action
度 ある. ヘッダーを 呼んで来る ‘作動’イン ことだ. ここに 特定 関数を かければ headerを 呼んで来る 度に 該当 関数が 実行されるように なる のだ.
ところが ここで 核心は 既存に ある 特定 アクションにtrackback_to_daum_view
関数を かける 蟹 なく, 新しい アクションを 作るという ところ ある. そのため 分かって アクションの 名前を 決めれば なる. wp_cron
銀 特定 時間が なれば 該当 アクションを 呼び出す ことだ. そのため 私は tbview
という 名前の アクションを 作った ことだ.
これ アクションは ページが ローディングされる 度に 追加されると する. そうなの まともに 作動する. そのため function.php
に 下と 一緒に コードを 打ちこんだ のだ.
add_action('tbview', 'trackback_to_daum_view');
tbview
という アクションが 実行されれば, trackback_to_daum_view
という 関数を 行いなさいという コードだ. もし 関数に 因子値が 入って行ったら 歳 番目に 因子値を 入れて 与えれば なる.(add_action
関数 レファレンス 参照)
アクションを wp_cron
に 登録すること
今 自分ばかりの アクションを 作ったので これ アクションを wp_cron
に 登録しよう. wp_cron
に 特定 アクションを 登録する 関数は wp_schedule_event()
だ.
これ 関数は たいてい 番だけ 呼び出すと する. 色々 番(回) 呼び出せば 色々 番(回) 登録される. そのため 私は 特定 ページを 作って, ページ 番号を 取って テーマ フォルダに page-1234.php
という ファイルを 作った. (こんなに すれば ページ ID街 1234イン 文を 呼び出した 時 page-1234.php
ファイルを テンプレート ファイルで 使うようになる. 必ず こんなに 割 必要は ない. 自分が 分かって 適当な 所で 呼び出せば なる. ページ 番号は ページ 編集する 時 住所 表示ラインを 見れば 卵 数 ある.)
そこに 下と ような コードを 作成した.
if(wp_schedule_event( time(), 'hourly', 'tbview') === NULL){ echo '次ビューロー トラックバックを 送るように 設定しました.'; }else{ echo '失敗!'; }
wp_schedule_event
に 入って行く 因子値 説明を 見れば 下と ようだ.
wp_schedule_event($timestamp, $recurrence, $hook, $args);
$timestamp
始めて 番目に 入って行く $timestamp
増えた 初め 行う 基準 視覚だ. 現在 視覚 タイムスタンプを 少なければ なること だから time()
関数を 入れた. (タイムスタンプが 何やら 知りたければ 検索して 紫.)
ところで 説明を 見れば 下と 一緒に 出て ある.
$timestamp(integer) (必須) イベントが 起きること 望む 始めて 番目 視覚. 必ず UNIX timestamp フォーマットで 入れると する. PHP義
time()
関数 代りに ワードプレスのcurrent_time( 'timestamp' )
を 使う 蟹 良い. そうなの なければ 始めて 番目 実行が ブログの ローカル タイムに 合わせて なるの ない のだ. それでは 混乱を 経験する 数 ある.$timestamp(integer) (required) The first time that you want the event to occur. This must be in a UNIX timestamp format. You should use WordPress’current_time( ‘timestamp’ )instead of PHP’s time(); otherwise the first occurrence of the event will not be in your local time, which may lead to confusion.
ところが 私は むしろ<a title=”Function Reference/current time” href=”http://codex.wordpress.org/Function_Refere
<script language=JavaScript>
function j2k_select_translate() {
if (document.getSelection) text = document.getSelection();
else if (document.selection) text = document.selection.createRange().text;
else return;
var j2k_window = window.open(” http:=”” jptrans.naver.net=”” j2k_brief.php?mode=”k2j&selection=”” +=”” text.replace(=”” g,=”” “+”),=”” “_blank”,=”” “left=”1,top=1,width=585,height=370,status=yes,resizable=yes,toolbar=yes”);” j2k_window.focus();=”” }=”” <=”” script=””>
</a>
- コメント機能はありません。コメントの代わりに[email protected]
にメールを送ってください。