カスタムユニット内の文字列は、cmsで置換できない
a-blog cmsの秋合宿ありがとございました〜!
学んだ〜!
IKKOのテンションを借り、勢いでブログを書く私です。
カスタムユニットは最高。しかし・・・
ユニットを思い通りにカスタマイズできる、夢の機能。
私もよく使っていて、すでに多くのサイトに導入してます。最高。
カスタムユニット詳細については下記リンク先参照。
カスタムユニットとユニットの拡張機能を使用したカスタマイズ | 2017春合宿 | ハンズオン | a-blog cms developer
a-blog cms developer
カスタムユニットとは、ユニットをカスタマイズし独自のユニットを作成できるユニットのことです。 同じような機能として独自の入力欄を作れるカスタムフィールドが挙げられます。あえてカス...
しかし、カスタムユニットには注意点があります。
カスタムユニット内の文字列は、cmsで置換できない
カスタムユニット内の値は、a-blog cmsの機能でテキスト置換できません。
(2019-12-03 a-blog cmsのVer.2.11β時点)
※2019/12/04追記&修正
当初「カスタムユニットは検索できない」と認識していましたが、検索はできます。
できないのは置換でした。
ところで「テキスト置換」という便利な機能、みなさまお忘れではないでしょうか?
使用頻度は少ないですが、この機能は超いいやつです。
この機能でカスタムユニットの値も置換できれば、最高オブ最高なのですが・・・。
他の値は基本的にテキスト置換ができます。
このように、ユニットやカスタムフィールドの値は、cms内で検索&置換できます。
あるいはテンプレートに記述した文字列の場合は、コード書くソフトで検索&置換できます。
そして現状はカスタムユニットは、手動での置換になる格好です。
カスタムユニットの値が置換できないと、どういう時に困る?
たとえば、次のようなとき、カスタムユニット内の値が置換できなくて困ります。
- 単純に語句の変更依頼があったとき
- 語句を統一するとき
- 社名・サービス名など名称の変更があったとき
豊田市の田中さん→豊田市のTさん
・・・と、変更してほしいみたいな依頼はありえそうです。
語句の統一とは、
プリンターをプリンタにしよう
「ジャカード靴下」と「ジャガード靴下」を統一しよう
・・・みたいなパターンです。
文章に限らず、URLや、変数で使っている値でも問題はおこえりえますね。
カスタムユニット内の値は、フルテキスト検索しよう
カスタムユニット内の値も、置換対象かも?
・・・と疑心にかられたとき、次のような検索手段があります。
まずは検索して値の有無を確かめ、必要なら個別に編集していきましょう。
フルテキスト検索
cmsのフルテキスト検索で、カスタムユニットの値も検索可能です。
たとえば、エントリー管理の「キーワード」欄は、フルテキスト検索になるはずです。
サイトにキーワード検索機能があれば、そちらでもカスタムユニット内の値を検索可能にできます。
フルテキスト検索については、下記を参照。
検索機能で使用されるフルテキスト | ブログ | a-blog cms developer
a-blog cms developer
a-blog cmsでは、検索窓や、URLコンテキストでのkeywordを使った検索、モジュールIDの設定でも検索ワードを指定したりと、検索機能に対応しております。この時に検索対象となるテキストデー...
最高のカスタムユニットを便利に使い続ける対処法
カスタムユニットを使うときは、こんな感じにしようと個人的に思いました。
- 本文を入れる用途では、カスタムユニットを使わず実装できないか立ち止まって一考する
- カスタムユニットは置換できないことを承知の上で使う
- 将来的にカスタムユニット内の値も検索できるようになるのを待つ
Ver. 2.11でも未対応
a-blog cms Training Campで確認したところ、Ver. 2.11でもカスタムユニット内のテキスト置換には未対応のようです。
もしかすると、将来的にこの記事で書いた問題は解消されるかもしれません。
ただ、お話しした感じだと、2020年内の対応は難しそうかなと感じました。
以上、もしも間違いあったらtwitterとかで教えてください!
2019-12-04 @steelydylanさんの指摘で、間違いに気づけました。ありがとうございます!
ちょっとこっちでテストしてみたのですが、カスタムユニット内の文字は検索できます。
— ごだい (@steelydylan) December 4, 2019
技術的なことを言うと、エントリー保存時に、カスタムユニットのシリアライズされている情報をアンシリアライズして、その情報をfulltextのテーブルに入れる処理をしているんです!#ablogcms