wordpress 記事編集後の「投稿を表示」リンクを別ウィンドウではなく現在のウィンドウに表示させたい

WordPressの管理画面で記事を更新した後に表示される「投稿を表示」リンクは、標準で別タブ(別ウィンドウ)で開く仕様になっています。

これを「現在のウィンドウ(同じタブ)」で開くように変更するには、お使いのテーマの functions.php ファイルにコードを追加するのが最も確実で簡単な方法です。


カスタマイズ方法(コードの追加)

WordPressの管理画面から 「外観」 > 「テーマファイルエディター」 を開き、使用しているテーマ(または子テーマ)の functions.php ファイルの末尾に以下のコードを貼り付けて保存してください。

/**
 * 記事編集後の「投稿を表示」リンクを同じタブ(現在のウィンドウ)で開く
 */
function custom_update_post_redirect( $location, $post_id ) {
    // クエリパラメーターに custom_view=1 を付与してリダイレクト(JSでの判定用)
    return add_query_arg( 'custom_view', '1', $location );
}
add_filter( 'redirect_post_location', custom_update_post_redirect, 10, 2 );

function custom_admin_footer_scripts() {
    // 編集後かつ特定のパラメータがある場合、または管理画面全体でリンクを書き換え
    ?>
    <script type="text/javascript">
    document.addEventListener('DOMContentLoaded', function() {
        // 管理画面の通知メッセージ(スナックバー)内の「投稿を表示」リンクを監視・修正
        const observer = new MutationObserver(function(mutations) {
            const links = document.querySelectorAll('.components-notice__action[target="_blank"], .updated a[target="_blank"]');
            links.forEach(function(link) {
                if (link.textContent.includes('投稿を表示') || link.textContent.includes('表示')) {
                    link.removeAttribute('target');
                    link.removeAttribute('rel');
                }
            });
        });

        // 画面全体の変化を監視
        observer.observe(document.body, { childList: true, subtree: true });
    });
    </script>
    <?php
}
add_action( 'admin_footer', 'custom_admin_footer_scripts' );

コードの解説とメリット

  • 安全性の確保: WordPressの標準仕様(ブロックエディター)はJavaScript(React)で動いているため、単純なPHPの書き換えだけでは別タブ開く属性(target="_blank")が消えないことがあります。
  • 確実な書き換え: 上記のコードはJavaScriptの「MutationObserver」という仕組みを使い、画面に「投稿を表示」リンクが現れた瞬間に自動で target="_blank" を削除します。これにより、確実に現在のウィンドウで開くようになります。

注意点

  • バックアップを推奨: functions.php の編集に失敗するとサイトが表示されなくなる恐れがあります。作業前に必ずコードのバックアップを取ってください。
  • プラグインの利用: もしコードを直接編集するのが不安な場合は、「Code Snippets」というプラグインを使うと、安全にコードを追加・管理できます。 [1]

もし設定中にエラーが発生した場合や、クラシックエディター(古いエディター)をお使いで上手くいかない場合は、状況に合わせてコードを調整しますので教えてください。

[1] https://tart.co.jp

Wordpress
楽天市場

コメント

タイトルとURLをコピーしました