wordpressの投稿画面にデフォルト文字列を設定する

Author:

wordpress使っている方で、毎回同じ事入力している人はいないでしょうか。
定型文のように、冒頭はこういう文章で始まるとか。

そういう場合、辞書登録したりランチャーのようなものを使うのも手ですが、
ちょっと手を入れるだけで投稿画面に予めデフォルト文字列を入れることができるのです。


wordpressにはフィルターフックという機能がついています。
これを使うと、システムが出力した変数を途中で書き換える事ができます。

メールを出したらサーバーのほうで勝手に広告がついたとか、
郵便物が途中で差し替わったとか(そんなのあったら嫌だけど)。
そんな機能ですね。


wordpressにはそういうフックがそこら中に仕掛けられています。
僕もフィルターがどれだけあるのか分かっていないけど。

そして、この投稿画面を開いた時にもフィルターが仕掛けられているので、
そのフィルターにアクションを設定させれば、投稿画面にデフォルト文字列を付加する事ができるというわけです。

まずはサーバーにある自分の使っているテーマのfunctions.phpを開きましょう。
んで、最後の方にこんな風に書きましょう。

add_filter('the_editor_content', ogatism_default_content);
function ogatism_default_content($content) {
    if (empty($content)) {
        return "私の愛しい胡麻せんべいへ\n\n\n貴方の従順なる騎士オガティより";
    } else {
        return $content;
    }
}

こんな感じで書くだけで、投稿画面を開くたびにこうなります。

senbei

もちろん変数を設定することもできるので、

add_filter('the_editor_content', ogatism_default_content);
function ogatism_default_content($content) {
    if (empty($content)) {
        global $wpdb;
        $current = number_format($wpdb->get_var("SELECT count(*) FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'post'")) + 1;
        $next = 10 - $current;
        return "現在 ". $current . " 記事目です。次のレベルまであと " . $next . " 記事です。";
    } else {
        return $content;
    }
}

next_level

こんなこともできます。
ITに詳しい人は自分で色々考えてみると面白いかも。
ITに詳しくないけどやってみたい人は詳しい人に設定してもらうなどして、
自分だけのハックを見つけてみましょう。

せっかくのwordpressなのですからね。

でもなんでデフォルトタイトルのフィルタが無いんだろう。
プレースホルダー、いわゆる薄く設定されているテキストは設定できるのですけどねえ。

Facebook にシェア
Pocket