wpseo_save_all_titles()


WordPressのwpseo_save_all_titles()関数は、Yoast SEOプラグインの機能の一部であり、すべての投稿、ページ、カスタム投稿タイプのタイトルを保存または更新するために使用されます。

構文

wpseo_save_all_titles();

この関数は引数を受け取りません。Yoast SEOの内部処理をトリガーし、指定された設定に基づいてすべてのタイトルを更新します。

例 1: 関数を直接呼び出してタイトルを更新

すべての投稿とページのタイトルを更新します。

<?php wpseo_save_all_titles(); ?>

例 2: フックを使用して自動的にタイトルを更新

投稿が保存されるたびにタイトルを更新するカスタムフック。

<?php
add_action( 'save_post', function ( $post_id ) {
    if ( ! wp_is_post_revision( $post_id ) ) {
        wpseo_save_all_titles();
    }
});
?>

例 3: 管理画面のカスタムボタンでタイトルを更新

カスタム管理画面のボタンをクリックするとタイトルを更新する仕組み。

<?php
add_action( 'admin_menu', function() {
    add_menu_page( 'タイトル更新', 'タイトル更新', 'manage_options', 'wpseo-title-update', function() {
        if ( isset( $_POST['update_titles'] ) ) {
            wpseo_save_all_titles();
            echo '<p>タイトルが更新されました。</p>';
        }
        ?>
        <form method="post">
            <input type="hidden" name="update_titles" value="1">
            <button type="submit">タイトルを更新</button>
        </form>
        <?php
    });
});
?>

例 4: CLIコマンドを使ってタイトルを更新

WP-CLIを利用してタイトルを更新するコマンドの作成。

<?php
if ( defined( 'WP_CLI' ) && WP_CLI ) {
    WP_CLI::add_command( 'wpseo_update_titles', function() {
        wpseo_save_all_titles();
        WP_CLI::success( 'すべてのタイトルが更新されました。' );
    });
}
?>

例 5: 特定の条件下でタイトルを更新

特定の条件を満たす場合にタイトルを更新します。

<?php
if ( is_admin() && current_user_can( 'manage_options' ) ) {
    wpseo_save_all_titles();
}
?>

注意事項

  • wpseo_save_all_titles()は大量のデータを処理するため、実行には時間がかかる場合があります。