Beschreibung
*** New feature added: Custom Post ID Slugs ***
This is add on plugin for Advanced Custom Fields (ACF) 5 + the Options Page Add On (or ACF Pro.).
ACF 5 と Options Page Add On (または ACF5 Pro)
がインストールされていない限り、このプラグインはいかなる機能も提供しません
このプラグインは、ACF
オプション ページ用のすべてのオプションを含む ACF でオプションページを追加する管理インターフェイスを提供します。 ほとんどのオプションは選択可能で、たとえば、メニューの場所、機能、
フィールドの値を保存する場所などです。
詳細については、
その他の注意事項と
スクリーンショット
Github リポジトリ
このプラグインは GitHub
https://github.com/Hube2/acf-options-page-adder
にもあります
機能の変更
オプション ページ設定を追加/編集するために必要な機能は “manage_options “です。 このケイパビリティは、フィルタを追加することで変更できます。
add_filter('acf-options-page-adder/capability', 'my_acf_options_page_adder_cap');function my_acf_options_page_adder_cap($cap) { $cap = 'edit_published_posts'; return $cap;}
オプションページのポストへの値の保存
ACF v5.2.7 では、オプションページのフィールドをポスト ID に保存する機能が追加されました。 このプラグインを使用してオプションページを追加した際に作成された投稿と同じ投稿IDにオプションを保存することができるようになります。 オプションページ自体のフィールドの取得を気にすることなく、 get_fields($options_page_id) を使用することも可能です。 なぜかというと、オプションページの作成に使われるフィールドはすべてアンダースコア _ で始まっており、get_fields() では返されないからです。
Saving Values Using a Custom post ID slug
オプションページの値を保存するためにカスタムのスラッグを使用することは可能です。 たとえば、あるオプション ページの値をあるユーザーに保存したい場合、オプション ページの $post_id の値として “user_1” を指定することができます。 これにはもうひとつ副次的な効果があります。 通常、ACF がオプションテーブルの “options” に値を保存する際には、 “options_” というプレフィックスを持つフィールドを見つけます。 ですから、たとえば、フィールド名が “my_field” であれば、オプションテーブルでは、オプション名として “options_my_field” を見つけることができます。 たとえば、オプションページの投稿 ID 設定を “my-custom-slug” にすると、オプションページの同じフィールドは “my-custom-slug_my_field” という名前になります。 2 このプラグインに新しいオプションが追加され、投稿 ID にオプションページのスラッグを使用するか、代わりに使用するカスタムスラッグを指定できます。
Get Post ID for Options Page
オプションページからの
値の取得に使用する正しい ACF $post_id 値を取得する関数とフィルタが利用可能です。 この関数/フィルタは、
options に保存されているオプションページに対しては ‘options’ を返し、オプションが投稿に保存されている場合には正しい投稿IDを返します。 正しいIDは、オプションページの「menu_slug」の値に基づいて
返されます。
/ example 1: function get_options_page_id()// get the post_id of an options page$post_id = get_options_page_id('my_options_page_slug');// get a value using $post_id$value = get_field('my_option_field', $post_id);// or it can be combined like this$value = get_field('my_option_field', get_options_page_id('my_options_page_slug'));// example 2: by filter$default = 'option',$slug = 'my_options_page_slug';$post_id = apply_filters('get_option_page_id_filter', $default, $slug);$value = get_field('my_option_field', $post_id);// or it can be combined like this$value = get_field('my_option_field', apply_filters('get_option_page_id_filter', $default, $slug));
間違った投稿IDを取得する条件があります。 この条件は、トップレベルのリダイレクトページが、最初のサブオプションページにリダイレクトされるように設定されていることで発生します。 もしサブオプションページが存在しなければ、トップレベルオプションページの値を返します。 後でサブオプションページを作成した場合は、サブオプションページの新しい値が返されます。 これが、redirect のデフォルト値を false にしている理由です。 もし、トップレベルページにリダイレクトさせたい場合は、 サブオプションページを作成していない場合は、 後で問題が発生する可能性があることを認識しておく必要があります。 また、サブオプションページの順番は、将来のある時点で変更されないように特に設定する必要があります。既存のトップレベルページと同じ順番で新しいオプションページを追加すると、新しいオプションページへの保存および取得場所が変更されるからです。 これはどうしようもないことで、このような仕組みになっています。
Font Awesome Support
Please note that this plugin does not enqueue or include Font Awsome in the admin of your site.
If you include Font Awsome in your admin, you can use Font Awesome Icons for the icons of
top level options page.Of Font Awesome Icon for the icon. たとえば、アドレス帳アイコンを使用したい場合は、オプション ページを追加または編集するときに、アイコン フィールドに fa fa-address-book
を追加するだけです。
このプラグインのバージョン 3.8.0 では、ACF オプション ページをカスタマイズするために、ヘッダーとフッター コンテンツを追加できる機能を追加しました。 オプション ページ管理エディタに追加された WYSIWYG フィールドに加えて、これらのセクション、またはフィルタを使ってオプション ページ全体をカスタマイズすることができます。 この機能により、多数のフィールドを持つオプション ページでメモリ不足の致命的なエラーが発生することがあります。 トグルをオンにする前にこのフィールドにコンテンツが入力された場合、トグルは自動的にオンになります。
ヘッダー コンテンツ
add_filter('acf-options-page-adder/page-header', 'my_custom_options_page_header', 10, 2);function my_custom_options_page_header($content, $hook) { // $content = content, by default it is '' or the value of the WYSIWYG editor // $hook = the current options page hook that is being called $content = '<p>My Custom Header Content</p>'; return $content;}
フッター コンテンツ
add_filter('acf-options-page-adder/page-footer', 'my_custom_options_page_footer', 10, 2);function my_custom_options_page_footer($content, $hook) { // $content = content, by default it is '' or the value of the WYSIWYG editor // $hook = the current options page hook that is being called $content = '<p>My Custom Footer Content</p>'; return $content;}
オプション ページ全体のフィルタリング
add_filter('acf-options-page-adder/page-content', 'my_custom_options_page_filter', 10, 2);function my_custom_options_page_filter($content, $hook) { // $content = entire content or options page, including all ACF fields // $hook = the current options page hook that is being called // caution should be taken when making modification to the page content return $content;}
Remove Nag
いくつかの管理ページに表示される私の小さなナグを削除したい場合は、以下を functions.php ファイルに加えてください
add_filter('remove_hube2_nag', '__return_true');