Beschreibung
*** Nouvelle fonctionnalité ajoutée : Slugs d’ID de post personnalisés ***
C’est un plugin complémentaire pour Advanced Custom Fields (ACF) 5 + le Add On Options Page (ou ACF Pro).
Ce plugin ne fournira aucune fonctionnalité à moins que ACF 5 et le Options Page Add On (ou ACF5 Pro)
ne soient installés
Ce plugin fournit une interface d’administration pour ajouter des pages d’options dans ACF, y compris toutes les options pour ACF
options pages. La plupart des options sont sélectionnables, par exemple l’emplacement du menu, la capacité et l’endroit où enregistrer
les valeurs des champs.
Pour plus d’informations, voir
Autres notes et
Captures d’écran
Dépôt Github
Ce plugin est également sur GitHub
https://github.com/Hube2/acf-options-page-adder
Modification de la capacité
La capacité requise pour ajouter/modifier les paramètres des pages d’options est « manage_options ». Cette capacité peut être modifiée par l’ajout d’un filtre.
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;}
Enregistrement des valeurs dans le post de la page d’options
ACF v5.2.7 a ajouté la possibilité d’enregistrer les champs de la page d’options dans un ID de post. Ce plugin vous permettra d’enregistrer les options dans le même post ID du post créé lors de l’ajout d’une page d’options en utilisant ce plugin. Vous pouvez même utiliser get_fields($options_page_id) sans avoir à vous soucier de récupérer les champs de la page d’options elle-même. Pourquoi ? Parce que tous les champs utilisés pour créer la page d’options commencent par un trait de soulignement _ et ne seront pas retournés par get_fields(). La seule chose à laquelle vous devez faire attention est de ne pas utiliser l’un des noms de champs utilisés par ce plugin, ce qui devrait être extrêmement facile puisqu’ils commencent tous par acfop.
Sauvegarder les valeurs en utilisant un slug personnalisé post ID
Il est posible d’utiliser un slug personnalisé pour sauvegarder les valeurs de la page d’options. Par exemple, si vous voulez sauvegarder les valeurs d’une page d’options pour un utilisateur, vous pouvez fournir « user_1 » comme valeur $post_id pour la page d’opitons. Ceci a également un autre effet secondaire. Normalement, lorsque ACF enregistre des valeurs dans « options » dans la table des options, vous trouverez les champs avec le préfixe « options_ ». Ainsi, par exemple, si le nom de votre champ est « mon_champ », vous trouverez dans la table des options « options_mon_champ » comme nom d’options. Vous pouvez fournir un slug personnalisé pour cela, disons que vous définissez le paramètre post ID pour la page d’options à « my-custom-slug ». Cela ferait que le même champ dans la page d’options aurait le nom « my-custom-slug_my_field ». 2 De nouvelles options ont été ajoutées à ce plugin et vous pouvez choisir d’utiliser le slug de la page des options pour l’ID du post ou vous pouvez spécifier un slug personnalisé à utiliser à la place.
Get Post ID for Options Page
Une fonction et un filtre sont disponibles pour obtenir la valeur ACF $post_id correcte à utiliser pour obtenir
des valeurs de la page des options. Cette fonction/filtre renverra ‘options’ pour les pages d’options stockées dans
options ou renverra l’ID du post correct si les options sont enregistrées dans un post. L’ID correct est retourné
sur la base de la valeur « menu_slug » de la page d’options.
/ 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));
Il existe une condition où vous obtiendrez l’ID de post incorrect. Cette condition est créée en ayant une page de redirection de niveau supérieur qui est configurée pour rediriger vers la première page de sous-options. Si aucune page de sous-options n’existe, la valeur de la page d’options de niveau supérieur est renvoyée. Si vous créez ultérieurement une page de sous-options, elle renverra la nouvelle valeur de la page de sous-options. C’est pourquoi j’ai vu la valeur par défaut de redirect à false. Si vous voulez que la page de niveau supérieur redirige, vous devez être conscient que cela peut vous causer des problèmes plus tard si vous n’avez pas créé de page de sous-options. Vous devez également définir l’ordre des pages de sous-options de manière à ce qu’elles ne changent pas à l’avenir, car l’ajout d’une nouvelle page d’options dans le même ordre que la page de premier niveau existante modifiera l’emplacement de sauvegarde et d’obtention de la nouvelle page d’options. Il n’y a rien que je puisse faire à ce sujet, c’est ainsi que cela fonctionne. Lors de la mise en place des pages d’options ACF pour sauvegarder dans un post au lieu des options, vous devez être plus précis dans avec les arguments de la page d’options.
Font Awesome Support
Veuillez noter que ce plugin ne met pas en file d’attente ou n’inclut pas Font Awsome dans l’admin de votre site.
Si vous incluez Font Awsome dans votre admin alors vous pouvez utiliser les icônes Font Awesome pour les icônes de
page d’options de niveau supérieur. Par exemple, si vous vouliez utiliser l’icône du carnet d’adresses, alors tout ce que vous avez à faire est d’ajouter fa fa-address-book
dans le champ Icône lors de l’ajout ou de l’édition de la page d’options.
En-tête/pied de page d’options de filtre/contenu
La version 3.8.0 de ce plugin a ajouté la possibilité de personnaliser la page d’options ACF en ajoutant un contenu d’en-tête et de pied de page. En plus des champs WYSIWYG qui ont été ajoutés à l’éditeur d’administration de la page d’options, vous pouvez également personnaliser ces sections, ou la page d’options entière en utilisant des filtres.
La version 3.8.2 de ce plugin ajoute une bascule pour activer cette fonctionnalité. Cette fonctionnalité peut provoquer une erreur fatale out of
memory sur les pages d’options qui ont un grand nombre de champs. Si du contenu a été saisi dans ce champ avant l’activation de l’option à bascule, celle-ci sera automatiquement activée. Sinon, la valeur par défaut de cette option sera désactivée.
Contenu de l’en-tête
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;}
Contenu du pied de page
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;}
Filtre de la page d’options entière
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;}
Suppression du Nag
Si vous souhaitez supprimer mon petit nag qui apparaît sur certaines pages d’administration, ajoutez ce qui suit à votre fichier functions.php
add_filter('remove_hube2_nag', '__return_true');
.