WordPressにて 特定ページのみ『Custom Field Gui Utility』を適用する

いま取り組んでいる案件では、テンプレートタグはもとより、プラグインを作ったり関数(WordPressにて用意されているもの)を駆使したりと、今までにないくらいのカスタマイズをやっているような気がします。

さて、WPのカスタマイズに欠かせない(?)のがカスタムフィールドの存在。詳細は省きますが、これを使いこなすとカスタマイズの幅がぐっと広がること請け合いです。ところが、便利きわまりないカスタムフィールドも管理画面でのインターフェイスはお世辞にも良いといえません。

客先の立場で考えれば、そういった敷居の高さは少しでも低くしてあげたいもの。そこで活躍してくれるのが、インターフェイスを改善してくれるプラグイン『Custom Field Gui Utility』です。

プラグインのreadmeにはこのように書いてあります。

このプラグインは、WordPress の「投稿」及び「ページ」の編集画面に、カスタムフィールドを入力するためのフォーム要素を生成し、カスタムフィールドを使いやすくするインターフェースを提供するプラグインです。

オリジナルのプラグインは、「投稿」の編集画面に、上記のインターフェースを提供するプラグイン「Custom Field GUI」(http://rhymedcode.net/projects/custom-field-gui/)です。

WP2.7の管理画面では、カスタムフィールドの表示・非表示を「表示オプション」で設定できるようになっています。つまり、カスタムフィールドを設定→『Custom Field Gui Utility』を導入→「表示オプション」でカスタムフィールドを非表示……という手順を踏めば、管理画面には『Custom Field Gui Utility』で生成されたインターフェイスのみが表示され、WPの扱いに慣れていない人でも容易にカスタムフィールドへの入力・更新ができるというわけなのです。

ふう。ようやくここまできて本題です。

今回の案件では、

  • ショップ紹介
  • スタッフ紹介

という二つのコンテンツでWPの「ページ」機能を使っています。さらに、ショップ紹介用のカスタムフィールドとして

  • 所在地
  • 電話番号
  • 営業時間
  • 定休日

といったカスタムフィールドを設定しました。

ところがカスタムフィールドを設定してしまうと、本来現われてほしくない「スタッフ紹介」ページの管理画面でも「所在地」「電話番号」などの入力フォームが出てきてしまい、あらぬ誤解を招く恐れがあるのです。

そこで、大変すばらしい『Custom Field Gui Utility』を活用し、今回の案件向けに少々手を加えました(ヴァージョンは1.00)。改造するのは、同プラグインのフォルダ内にある

  • rc-custom-field-gui-common.class.php
  • rc-custom-field-gui-page.class.php

function insert_gui() { (176行目)と $fields = rc_custom_field_gui_page::get_custom_fields(); (177行目)の間に以下のコードをおのおの挿入します。

$post = get_post ( $post_id );
if ( strcmp ( $post -> post_title, 'ショップ紹介' ) ) {
return;
}

こうすることで、「ショップ紹介」ページ以外の管理画面では『Custom Field Gui Utility』を無効にできました。

以上、例によって「ご利用は計画的に」のコードですが、ご参考になれば。

Custom Field GUI Utility – WordPress プラグイン – かたつむりくんのWWW
http://www.tinybeans.net/blog/download/wp-plugin/cfg-utility-100.html


WordPressにて 特定ページのみ『Custom Field Gui Utility』を適用する” への1件のコメント

  1. カスタムフィールドを特定のページのみに適用する

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt=""> <pre lang="" line="" escaped="" highlight="">