オプションページの作成機能等を追加した Smart Custom Fields 2.1.0 を公開しました。

Smart Custom Fields 2.0.0〜2.1.0 で下記のアップデートを行いました。

  • オプションページの作成機能を追加
  • WYSIWYG フィールドにビジュアル・テキストの切り替えタブを追加
  • チェックボックス、ラジオボタン、セレクトボックスの選択肢の設定でキーと値に別々の値を指定できるように変更

オプションページの作成機能を追加

テーマの functions.php 等に下記のコードを追加することでオプションページを作成し、そこにカスタムフィールドを設置できるようになりました。ページ単位とかカテゴリー単位ではなく、サイト共通で使用するようなオプションを設定したい場合に便利です。

/**
 * @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' );

上記を追加すると Smart Custom Fields の設定画面に「表示条件(オプションページ)」というメタボックスが追加されますので、そこでカスタムフィールドを設置したいオプションページを選択し保存してください。

オプションページで保存したカスタムフィールドの値を取得するのは下記のコードで行えます。

// カスタムフィールドの値を取得
SCF::get_option_meta( 'メニュースラッグ', 'フィールド名' );

// グループの値を取得
SCF::get_option_meta( 'メニュースラッグ', 'グループ名' );

// そのオプションページの全てのデータを取得
SCF::get_option_meta( 'メニュースラッグ' );

WYSIWYG フィールドにビジュアル・テキストの切り替えタブを追加

これまで WYSIWYG フィールドには「メディアを追加」ボタンはあったのですが「ビジュアル・テキストの切り替えタブ」はありませんでした。これは実装方法がわからなかったためなのですが、改めてコアのコードを読み直し、なんとか動作するようにできました。もし不具合があっても僕にはどうしようもないのでその場合はプルリクくださいw

チェックボックス、ラジオボタン、セレクトボックスの選択肢の設定でキーと値に別々の値を指定できるように変更

キー => 値のように選択肢を入力することで、キーと値に別々の値を指定できるようになりました。

コードでカスタムフィールドを設定する場合は下記のような感じで別々の値を指定できるようになります。

...
$Setting = SCF::add_setting( 'theme-options', 'テーマオプション' );
$Setting->add_group( 'group-animals', false, array(
	array(
		'name'  => 'animals',
		'label' => '動物',
		'type'  => 'check',
		'choices' => array(
			'cat'  => '猫',
			'dog'  => '犬',
			'bird' => '鳥',
		),
		'default' => array(
			'cat', 'dog',
		),
	),
) );
$settings[] = $Setting;
...

MW WP Form

MW WP Form はショートコードベースのフォームプラグインです。多くの機能を持っており、例えば、多くのバリデーションルール、問い合わせデータの保存、そしてグラフ機能集計などを使用することができます。 さらに詳しく

Habakiri

Habakiri

Bootstrap ベースのシンプルな WordPress テーマ。レスポンシブ、多くのカスタマイズ機能。圧縮された CSS・JS を使用する高速化対策。Microformats 対応。Sass、クラスベースの functions.php。 さらに詳しく

basis-stylus

Basis

軽量なレスポンシブ Stylus/CSS フレームワーク。Flexbox ベースのグリッドシステム、疎結合なコンポーネント、バーティカルリズム。 さらに詳しく

この投稿へのコメント

  1. 崎山 said on 2016年6月26日 at 8:41 AM

    function.phpにコードを記述しないと機能しないのでしょうか?

  2. キタジマタカシ said on 2016年6月26日 at 7:59 PM

    崎山さん
    基本的には Advanced Custom Fields のように管理画面から設定できますが、管理画面から設定するのが面倒だったり、管理画面からは設定できないような複雑な条件で出しわけを行いたい場合は functions.php などにコードを書くことで設定できるようになっています。

  3. Toshi said on 2016年7月25日 at 9:53 PM

    いつもSMFを使わせていただいております。ありがとうございます。個人的にはカスタムフィールド系で最高のプラグインだと思っています!

    さて、ちょっと気になったのですが、繰り返しアリのグループ内で日付ピッカーを使っている場合、通常は投稿画面で空欄をクリックするとカレンダーが表示されて日付が選べますが、そのまま繰り返しでフィールドを追加した場合、空欄内をクリックしてもカレンダーが表示されません。

    一度投稿を保存すれば次のカレンダーも表示されるようになりますが、連続して入力する場合は少々不便さを感じました。
    これは改善はできないものでしょうか。ちなみにWPは4.5.3、SCFは2.2.0、ブラウザはChromeです。

    可能なようでしたら対応のほどよろしくお願いいたします。

  4. nozomi said on 2016年8月2日 at 5:40 PM

    >そのまま繰り返しでフィールドを追加した場合、空欄内をクリックしてもカレンダーが表示されません。

    私も同じ現象が発生し、解決したのでこちらにてご報告いたします。
    (プルリクすればよかったのですが、やったことがなく、時間もないためコメントにて失礼します・・・)

    ■修正対象
    /wp-content/plugins/smart-custom-fields/js/editor-datepicker.js

    ■修正内容
    20行目
    var parent = $( button ).parents( ‘.smart-cf-meta-box-repeat-tables’ );

    var parent = $( button[‘button’] ).parents( ‘.smart-cf-meta-box-repeat-tables’ );

    おそらく、もともとはtrigeerで指定した引数がbuttonのみだったところを、配列に変更されたので
    こうなったのではないかな~と思いました。

    いつも便利に使わせていただいており、誠に感謝しております。

    ちなみに、繰り返しありのWYSIWYG フィールドで、ビジュアルとテキストでの切り替えができませんでした。(@Chrome)
    こちらも折を見てチェックしてみたいと思いますが、ご報告まで。

  5. nozomi said on 2016年8月2日 at 6:26 PM

    先にコメントした件、古いWordPressだったのが原因だったようです。お騒がせして申し訳ありませんでした。

    以下、ご参考までに…

    WP4.3以前では、「ビジュアル」「テキスト」タブのHTMLにおいて、直接onclickイベントが指定されていました。
    このため、推奨はされないと思いますが、wp-content/plugins/smart-custom-fields/js/editor-wysiwyg.jsの行29直下などに
    以下を追加し、対応することができました。
    $(wrap).find(‘.wp-editor-tabs button’).attr({‘onclick’:’switchEditors.switchto(this);’});

  6. キタジマタカシ said on 2016年8月2日 at 7:09 PM

    nozomi さん
    詳しくありがとうございます!
    繰り返し内の datepicker、colorpicker の不具合については最新版(v2.2.2)で修正済みです。
    wysiwyg については全然気づいていませんでした。。ご報告助かります。
    ご提示頂いたコードを参考に検証してみます。

  7. nozomi said on 2016年8月3日 at 12:02 PM

    ご丁寧にありがとうございます。
    結論としては「WPもプラグインも、どれも最新版を使えば問題ない!」という話で、失礼いたしました;

    WPの最新版(4.5.3)で試験したところ、上記追記を行なうと、むしろswitchEditors.switchtoが無いために、(大元の動作に問題ないものの)コンソール部でエラーが出てしまいますので、「古いバージョンではこんなこともあるんだな」ぐらいに置いておいていただけますと幸いです。

    また、いつもプラグインを使わせていただいている通りすがりではありますが、ご家族の誕生おめでとうございます!

コメントを残す

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL