WordPress記事にデフォルトでタイトルを付けるコード




1年以上前に更新された記事です。
情報が古い可能性がありますので、注意してください。

記事タイトル考えるのがメンドクサイ

雑記を書くとき、記事タイトルを考える事が面倒だなと思たので、タイトルを空っぽで保存や投稿した場合、「(年月日)の雑記」と勝手に保存されるようにしてみた。

今回はtransition_post_statusフックを使用する。
functions.phpに記述。

add_action('transition_post_status', 'autoTitle', 10, 3);
function autoTitle($new_status, $old_status, $post) {
    // 投稿記事の場合
    if(get_post_type($post) == 'post') {
        if($post->post_title == '') {
            $post->post_title = date('Y年m月d日').'の雑記';
        }
    }

    // この関数をフックから外し、無限ループを防ぐ。
    remove_action('transition_post_status', 'autoTitle');
    // データベースにある投稿を更新する
    wp_update_post($post);
    // この関数を改めてフックする。
    add_action('transition_post_status', 'autoTitle');
}

transition_post_statusは、投稿ステータスの変化を細かく判定できるフックだけど、今回の場合は不要と思って判定はしていない。
細かく判定したい場合は、以下を参照。

参考

投稿ステータスの遷移 – WordPress Codex 日本語版

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です