そういえばそうだなって。
どういう機能か
通常、カスタムフィールドはページごとに仕込むものなので、各ページで完結する。他所のページから引っ張ってくることもできるけど、あくまでもそのページの情報だからって感じになる。
WEBサイト全体に掛かる情報を一元管理したい場合、これを活用すれば便利だよねって思うわけで。問い合わせ先の電話番号だとか、会社情報だとか、いちいち入力するのダルいしそれぞれ修正するのもめんどくさいよねってことがある。じゃあカスタムフィールドを使うとして、どのページに設定するんだよって話になる。「そういうもの用」でページを作ると邪魔くさいし、表示されちゃったら嫌だし、ページ数が増えて一覧で埋もれたら見返すのめんどいし、みたいな。
そういうときに便利なのがオプションページ。
標準機能なのに使ってない人多いんでないかね。
扱い方
まずは本家を見る。
紹介記事も見る。
細かい事をしてるところも見る。
粗方読んだらそんなに難しくないし大した面倒でもないなってのが分かる。
個人的なところでは使いまわしが必要な機会に遭わないので、出番が今のところない。共通パーツ内(header.phpとか)で済んでる。
そんなにいっぱい入れなきゃいけないことは無いんだけど、何はなくともとりあえず仕込んでおけば、活用するのかなとも思う。LINE公式アカウントのURLだとか、SNSアカウントのURLだとか。恒久的なもんで頻繁な変更がないものは作って終わりになるわけだけど、それであっても記述ミスを防ぐためって意味合いも持てるし。良いんじゃないでしょうか。
例
サンプルはこんな感じになってる。
/**
* @param string $page_title ページのtitle属性値
* @param string $menu_title 管理画面のメニューに表示するタイトル
* @param string $capability メニューを操作できる権限(maange_options とか)
* @param string $menu_slug オプションページのスラッグ。ユニークな値にすること。
* @param string|null $icon_url メニューに表示するアイコンの URL
* @param int $position メニューの位置
*/
SCF::add_options_page( 'ページタイトル', 'メニュータイトル', 'manage_options', 'theme-options' );
そのままでも使えるけど見てくれを変えたいとか複数使いたいとかでアレなので、多少いじったりする。
/**
* @param string $page_title ページのtitle属性値
* @param string $menu_title 管理画面のメニューに表示するタイトル
* @param string $capability メニューを操作できる権限(maange_options とか)
* @param string $menu_slug オプションページのスラッグ。ユニークな値にすること。
* @param string|null $icon_url メニューに表示するアイコンの URL
* @param int $position メニューの位置
*/
SCF::add_options_page( '共通情報', '共通情報', 'manage_options', 'common-options' );
ページとメニューのタイトルは管理画面上の表示だから、分かれば何でも良い。重要なのは$menu_slugで、ここは後で変更すると登録した内容が飛ぶ。ユニークっていうのは被らないオンリーワンのアレなんで、めっちゃ長くするか絶対に他で使わないものにしないとダメだし、一度決めたら変更しちゃダメ。
これをfunctions.phpに書き込むと管理画面左メニューに作成した名称で項目が増える。この状態ではページの中は真っ白。
SCFの画面で、どっかに「表示条件(オプションページ)」の枠があって、中に項目が増えてる。これをアクティブにしてCFの枠を作る。
そうすると、左メニューに追加されたページの中にCFが追加される。
出力方法はこんな感じ。
<?php echo SCF::get_option_meta('【オプションページのスラッグ】','【フィールド名】'); ?>
コードもそうだけどフィールド名の後に対象ページを書く通常のものとは記述が変わるので注意。
コメント