a-blog cmsに登録されたテキストの置換を効率よく行うための小ネタ
こちらの記事は a-blog cms Advent Calendar 2016 の2日目の記事です。
たとえば、「製品名の名前が変わったので、サイト内に載っている製品名をすべて書き換えたい」、「リンク先が変わったので、サイト内に掲載しているリンク先を書き換えたい」などの要望をお客さんから受けたことはありませんか?
コンテンツが数ページであれば困りませんが、コンテンツ量が多いサイトでは困ることが多いのではないかと思います。
もしかしたら、変更したい製品名は、「複数のエントリーのタイトル」、「ユニットの本文」、「カスタムフィールド」、「リンク集のモジュール」のような場所にいくつも入っているかもしれません。目視で探そうとすると、どこか見落としがあるかもしれません。
もし、テンプレートに直接テキストが書かれていた場合は、テキストエディターでファイル全体を探し、置換すれば修正することができますが、CMSで管理されているコンテンツはテキストエディターから一括変換することはできません。
この記事では、a-blog cms に登録されている特定のテキストを確実に探す方法をご紹介します。コンテンツが多いサイトになればなるほど使える小ネタです。
目次
- ユニットに登録されているHTMLタグを探す方法
- モジュールに登録されているテキストを探す方法
- タイトル・ユニット・カスタムフィールドのテキストを一括置換する方法(プロフェッショナル版のみ)
ユニットに登録されているHTMLタグを探す方法
a-blog cms の全文検索では、HTMLタグは検索できません。もし、訪問したサイトの検索フォームでHTMLタグが検索できたらとても驚いてしまうと思うので、当然の仕様なのです。たとえば、自由入力ユニットに1回きりだから、という理由で埋め込み用のコードを貼ったことがあるかたもいらっしゃるのではないでしょうか。
そんなときは、データベースからMySQLで検索します。たとえば、以下のコードはiframe要素を検索しています。実際にAMPに対応するために、当ブログをMySQL文で検索したときに教えていただいたコードです。
SELECT * FROM acms_column WHERE 1 AND column_type = 'text' AND column_field_1 LIKE '%iframe%';
モジュールに登録されているテキストを探す方法
たとえば、リンク集やナビゲーションモジュールに登録されているテキストやリンク先URLを検索したいときに、この機能を使います。
まず、[管理画面]に入り、[チェックリスト]のページへ移動します。
そして、チェックリストのページ下部に「コンフィグ検索」という検索フォームがあるので、この検索フォームを使って置換したいキーワードを検索します。
ここではキーワードを「テスト」として検索してみました。
検索するとページの上に戻ってしまうので、再度下までスクロールすると検索結果が表示されています。どこのブログIDでどんなモジュールID名のモジュールに「テスト」というキーワードが登録されているかわかります。
ちなみに、上記の画像で「globalNav」となっているモジュールID名をクリックすると、モジュールIDの変更画面に移動できるので、変更しやすくなっています。
タイトル・ユニット・カスタムフィールドのテキストを一括置換する方法(プロフェッショナル版のみ)
もちろん、カスタムフィールドに登録されているテキストは、普通にカスタムフィールド検索をすれば検索され、表示できます。ですが、もしお使いのライセンスがプロフェッショナル版以上であれば探すどころか一括変換が可能になります。
[管理画面]→[チェックリスト]→[テキスト置換]の順にページを移動します。このページでは、指定したキーワードをチェックして探すか、確認を行わず置換できるようになっています。
以下の画像では、当ブログを対象文字を「ピヨスケ」、変換文字を「ぴよすけ」と設定してチェックしてみた結果です。
右端の「確認」ボタンをクリックすれば実際の記事のURLに飛んでエントリーを確認できます。左端のチェックボックスにチェックを入れて「チェックをつけたものを置換」ボタンクリックすれば、テキストが置き換わります。
上記の画像では2件分のユニットしか表示されていませんが、最大100件まで表示できます。コンテンツが多いサイトでぜひご活用ください!
まとめ
とてもちいさなネタをご紹介させていただきました。a-blog cms 全国ツアーで金沢でしか話すきっかけがなかったので、ぜひご紹介したいと思っていたネタです。とても地味ですが、作業の確実さを求めるには知っていて損はない機能だと思います。
以上、 a-blog cms Advent Calendar 2016 2日目の記事でした!