Beschreibung
*** Neue Funktion hinzugefügt: Custom Post ID Slugs ***
Dies ist ein Add-On Plugin für Advanced Custom Fields (ACF) 5 + das Options Page Add On (oder ACF Pro).
Dieses Plugin bietet keine Funktionalität, wenn ACF 5 und das Options Page Add On (oder ACF5 Pro)
nicht installiert ist
Dieses Plugin bietet eine Verwaltungsschnittstelle für das Hinzufügen von Optionsseiten in ACF einschließlich aller Optionen für ACF
Optionsseiten. Die meisten Optionen sind auswählbar, z.B. die Position des Menüs, die Fähigkeit und wohin die
Feldwerte zu speichern sind.
Weitere Informationen finden Sie unter
Sonstige Hinweise und
Screenshots
Github Repository
Dieses Plugin befindet sich auch auf GitHub
https://github.com/Hube2/acf-options-page-adder
Fähigkeit ändern
Die Fähigkeit, die zum Hinzufügen/Bearbeiten von Optionsseiteneinstellungen erforderlich ist, ist „manage_options“. Diese Fähigkeit kann durch Hinzufügen eines Filters geändert werden.
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;}
Speichern von Werten auf der Optionsseite Post
ACF v5.2.7 fügte die Möglichkeit hinzu, Felder der Optionsseite in einer Post-ID zu speichern. Mit diesem Plugin können Sie die Optionen in der gleichen Post-ID des Posts speichern, der beim Hinzufügen einer Optionsseite mit diesem Plugin erstellt wurde. Sie können sogar get_fields($options_page_id) verwenden, ohne sich um die Felder für die Optionsseite selbst kümmern zu müssen. Der Grund dafür ist, dass alle Felder, die für die Erstellung der Optionsseite verwendet werden, mit einem Unterstrich _ beginnen und nicht von get_fields() zurückgegeben werden. Das einzige, worauf Sie achten müssen, ist, dass Sie keine der Feldnamen verwenden, die von diesem Plugin verwendet werden, was sehr einfach sein sollte, da sie alle mit acfop beginnen.
Speichern von Werten mit einem benutzerdefinierten Post-ID-Slug
Es ist möglich, einen benutzerdefinierten Slug für das Speichern von Optionsseitenwerten zu verwenden. Wenn Sie beispielsweise die Werte einer Optionsseite für einen Benutzer speichern möchten, können Sie „user_1“ als $post_id-Wert für die Optionsseite angeben. Dies hat noch einen weiteren Nebeneffekt. Wenn ACF Werte in „options“ in der Optionstabelle speichert, finden Sie normalerweise die Felder mit dem Präfix „options_“. Wenn Ihr Feldname beispielsweise „mein_feld“ lautet, finden Sie in der Optionstabelle „options_mein_feld“ als Optionsnamen. Sie können dafür einen benutzerdefinierten Slug angeben, z. B. wenn Sie die Post-ID-Einstellung für die Optionsseite auf „my-custom-slug“ setzen. Dies würde dazu führen, dass das gleiche Feld auf der Optionsseite den Namen „my-custom-slug_my_field“ erhält. Es wurden 2 neue Optionen zu diesem Plugin hinzugefügt und Sie können wählen, ob Sie den Slug der Optionsseite für die Post-ID verwenden möchten oder ob Sie stattdessen einen benutzerdefinierten Slug angeben möchten.
Get Post ID for Options Page
Eine Funktion und ein Filter stehen zur Verfügung, um den korrekten ACF $post_id Wert zu erhalten, der für den Erhalt von
Werten von der Optionsseite verwendet werden soll. Diese Funktion/Filter gibt ‚options‘ für Optionsseiten zurück, die in
options gespeichert sind, oder gibt die richtige Post-ID zurück, wenn Optionen in einem Post gespeichert sind. Die korrekte ID wird
auf der Grundlage des „menu_slug“-Wertes der Options-Seite zurückgegeben.
/ 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));
Es gibt eine Bedingung, bei der Sie die falsche Post-ID erhalten. Diese Bedingung wird durch eine Umleitungsseite auf oberster Ebene geschaffen, die so eingestellt ist, dass sie auf die erste untergeordnete Optionsseite umleitet. Wenn es keine untergeordnete Optionsseite gibt, wird der Wert für die übergeordnete Optionsseite zurückgegeben. Wenn Sie später eine untergeordnete Optionsseite erstellen, wird der neue Wert von der untergeordneten Optionsseite zurückgegeben. Aus diesem Grund habe ich den Standardwert von redirect auf false gesetzt. Wenn Sie möchten, dass die übergeordnete Seite umgeleitet wird, müssen Sie sich bewusst sein, dass dies später zu Problemen führen kann, wenn Sie keine untergeordnete Optionsseite erstellt haben. Sie sollten auch die Reihenfolge der untergeordneten Optionsseiten so festlegen, dass sich diese nicht irgendwann in der Zukunft ändern, da das Hinzufügen einer neuen Optionsseite mit der gleichen Reihenfolge wie die bestehende Seite der obersten Ebene den Speicher- und Abrufort der neuen Optionsseite ändert. Daran kann ich nichts ändern, so funktioniert es nun einmal. Beim Einrichten von ACF-Optionsseiten zum Speichern in einem Beitrag anstelle von Optionen müssen Sie die Argumente für die Optionsseite genauer angeben.
Font Awesome Support
Bitte beachten Sie, dass dieses Plugin Font Awswsome nicht in den Adminbereich Ihrer Website einbindet.
Wenn Sie Font Awsome in Ihren Adminbereich einbinden, können Sie Font Awesome Icons für die Icons der
Oberseite der Optionsseite verwenden. Wenn Sie z.B. ein Adressbuch-Icon verwenden möchten, müssen Sie nur fa fa-address-book
in das Icon-Feld einfügen, wenn Sie die Optionsseite hinzufügen oder bearbeiten.
In der Version 3.8.0 dieses Plugins wurde die Möglichkeit hinzugefügt, die ACF-Optionsseite durch Hinzufügen von Header- und Footer-Inhalten anzupassen. Zusätzlich zu den WYSIWYG-Feldern, die dem Admin-Editor der Optionsseite hinzugefügt wurden, können Sie diese Abschnitte oder die gesamte Optionsseite mit Hilfe von Filtern anpassen.
Version 3.8.2 dieses Plugins fügt einen Schalter hinzu, um diese Funktion zu aktivieren. Diese Funktion kann auf Optionsseiten mit einer großen Anzahl von Feldern zu einem fatalen Fehler führen, wenn der Speicher voll ist. Wenn der Inhalt in dieses Feld eingegeben wurde, bevor der Schalter aktiviert wurde, wird der Schalter automatisch aktiviert. Andernfalls ist diese Option standardmäßig ausgeschaltet.
Kopfzeilen-Inhalt
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;}
Fußzeilen-Inhalt
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;}
Gesamte Optionsseite filtern
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;}
Nörgel entfernen
Wenn Sie meinen kleinen Nörgel, der auf einigen Admin-Seiten erscheint, entfernen möchten, fügen Sie Folgendes zu Ihrer functions.php-Datei hinzu
add_filter('remove_hube2_nag', '__return_true');