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


コメント