WordPressの管理画面で投稿一覧を確認する際、「この投稿のURLをコピーしたい」と思うことはありませんか?
デフォルトでは、投稿の編集画面を開くか、公開ページへ移動しないとURLを取得できません。しかし、ちょっとしたコードを追加するだけで、投稿一覧ページに「URLコピー」ボタンを設置できるようになります。
この記事では、初心者の方でも簡単に実装できるように、ステップごとに詳しく解説していきます。

注意点
functions.php
を編集する際は、万が一のエラーに備えて必ずバックアップを取ってから作業してください。
誤った記述をすると、WordPressの管理画面が開けなくなる可能性があります。念のため、以下の方法でバックアップを取っておくと安心です。
- テーマのバックアップを取る
外観
>テーマエディター
から編集する前に、functions.php
の内容をコピーしてメモ帳などに保存。- 可能であればFTPソフトを使い、
wp-content/themes/使用中のテーマ/functions.php
をローカルに保存。
- プラグインを利用する
- 「Code Snippets」プラグインを使えば、テーマファイルを直接編集せずにカスタムコードを追加できます。
- 子テーマを使用する
- functions.php を編集する場合は、親テーマではなく子テーマを利用すると、テーマのアップデート時に変更が消える心配がありません。
どんな機能を追加するの?
今回のカスタマイズで実装するのは、以下の3つの機能です。
- 投稿一覧ページに「投稿URL」という新しい列を追加する。
- その列に各投稿のURLを表示し、クリックでコピーできるようにする。
- クリックするとコピー完了のメッセージを表示する。
これにより、わざわざ投稿を開かなくてもURLを取得できるようになります。
実装コード(functions.php に追加)
以下のコードを functions.php
に追加すると、投稿一覧にURLコピー機能が追加されます。
// 管理画面の投稿一覧にURLコピーを追加
function add_copy_url_feature() {
// 1. 投稿一覧に新しい列を追加
add_filter('manage_posts_columns', function($columns) {
$columns['post_url'] = __('投稿URL', 'textdomain');
return $columns;
});
// 2. 各投稿のURLを表示
add_action('manage_posts_custom_column', function($column, $post_id) {
if ($column === 'post_url') {
$url = get_permalink($post_id);
echo '<a href="#" class="copy-url" data-url="' . esc_url($url) . '">' . esc_url($url) . '</a>';
}
}, 10, 2);
// 3. JavaScriptでクリック時にURLをコピー
add_action('admin_footer', function() {
?>
<script type="text/javascript">
jQuery(document).ready(function($) {
$('.copy-url').on('click', function(e) {
e.preventDefault();
var url = $(this).data('url');
navigator.clipboard.writeText(url)
.then(() => alert('URL\n' + url + '\nのコピーが完了しました'))
.catch(err => console.error('コピー失敗:', err));
});
});
</script>
<?php
});
}
add_action('admin_init', 'add_copy_url_feature');
コードの解説
投稿一覧に新しい列を追加する
まず、add_filter('manage_posts_columns', function($columns) {...})
を使って、「投稿URL」というカスタム列を追加します。これにより、投稿一覧に新しい列が表示されるようになります。
各投稿のURLを取得して表示する
get_permalink($post_id)
を使用し、各投稿のURLを取得します。そのURLを <a>
タグの data-url
属性に埋め込むことで、後ほどJavaScriptで取得しやすくしています。
JavaScriptでクリック時にURLをコピー
管理画面のフッター部分(admin_footer
)にJavaScriptを追加し、クリック時の処理を設定します。
- クリックすると
navigator.clipboard.writeText(url)
を使ってURLをクリップボードにコピー。 - 成功したらアラートを表示し、「コピーが完了した」ことを知らせる。
- 失敗した場合はエラーメッセージをコンソールに出力。
管理画面の変化
今回紹介したコードをfunction.phpに追加すると、管理画面の投稿一覧ページに「投稿URL」が追加されます。

「投稿URL」の各記事のURLをクリックするとクリップボードにコピーされるようになります。

クリップボードにコピーされるとアナウンスが表示されます。
まとめ
このカスタマイズを導入することで、管理画面の投稿一覧から簡単に投稿URLをコピーできるようになります。
特に、SNSでのシェアやクライアントへの共有が多い方にとっては、大幅な時短につながる便利な機能です。
ぜひ、試してみてください!