サイトの大掛かりなメンテンナスをするときに、共通の文字列や文章がある投稿や固定ページを探すのって大変ですね。
そんな時、私は今まで「Search Regex」を結構使わせていただいていたのですが、一括置き換えをしたいわけではなく、必ず編集画面を開いて内容に誤りがあったり、文章を手直ししたりするので、単純にその文字列を検索して、本文内にあれば管理画面の列に「〇」を表示させるコードを作ってみました。
これでプラグインを使う必要はないし、何かのメンテナンスの時に役立つと思い、誰かの役に立てば幸いということで公開しておきます。
本文内に特定の文字列があるかを管理画面の列として表示させるコード
以下のコードを有効化しているテーマのfunctions.phpへ追加します。
function pwcn_display_content_text_search_mark_list($columns) {
$columns['has_content_text'] = '特定の文字列'; // 新しい列を追加
return $columns;
}
add_filter('manage_posts_columns', 'pwcn_display_content_text_search_mark_list');
function pwcn_display_content_text_search_mark($column_name, $post_id) {
if ($column_name == 'has_content_text') {
$post = get_post($post_id);
$search_text = '';//ここに検索する文字列を指定
if (strpos($post->post_content, $search_text ) !== false) {
echo '〇'; // 文字列が見つかったら〇を表示
}
}
}
add_action('manage_posts_custom_column', 'pwcn_display_content_text_search_mark', 10, 2);
function pwcn_display_content_text_search_mark_list_style(){
?>
<style>
th#has_content_text {
width: 10%;
}
</style>
}
add_action('admin_head','pwcn_display_content_text_search_mark_list_style');
追加後、投稿や固定ページの一覧を開くと「文字列」という列が追加され、指定した文字列があれば「〇」が表示されます。
以上、本文内に何かの文字列があるかどうかを投稿一覧に表示する方法でした。
私はこのコードで行っているのは主にプラグインを停止する際にそのプラグインで何かを表示するショートコードがあるかどうかというシーンで、特に本文の内容を大掛かりに変えるというものではないため、以下の自作プラグインで最終更新日の更新をしないようにしています。
他にも機能がいろいろとあって重宝すると思いますので、気になる方は一度ご覧ください。










コメントを残す