web-dev-qa-db-fra.com

Utiliser ACF pour afficher des données sur toutes les pages

J'ai installé Advanced Custom Fielts , et j'ai créé des champs personnalisés tels que courrier électronique, téléphone, etc. Je les ai placés dans mon footer.php. Les données ne sont affichées que sur la page d'accueil. Puis-je utiliser ACF pour créer des variables globales? Ma règle pour ce champ personnalisé est 'If Post Type is equal to post';

Je reçois ces données dans footer.php comme ceci

$phone_number = get_field('phone_number');

et je l'affiche comme

<?php echo $phone_number; ?>

Donc, fondamentalement, lorsque je suis sur ma page d’accueil, il s’affiche correctement; lorsque je vais sur une autre page (qui a le même pied de page), les données ne sont pas affichées. Que puis-je faire pour l'afficher sur toutes les pages?

1
BrS

Vous devez également utiliser ACF Options Page plugin.

La fonction de page d'options fournit un ensemble de fonctions permettant d'ajouter des pages d'administration supplémentaires. Toutes les données enregistrées sur une page d'options sont global .

Sea the plugin aperçu

Après avoir installé le plugin, vous devez ajouter ce qui suit à votre functions.php

if( function_exists('acf_add_options_page') ) {

    acf_add_options_page();

}

et l'étiquette "Options} _" sera visible dans votre zone d'administration.

alors il vous suffit de créer des champs acf avec la règle comme 'If Options Page is equal to Options'

Enfin pour afficher le champ:

echo get_field('phone_number', 'option');
2
Narek Zakarian

Comme d'autres utilisateurs le mentionnent pour créer des options globales, vous devez disposer de Page Options ACF module complémentaire ou ACF PRO . Cela vous donnera la possibilité de créer une page d’options Nice et de récupérer votre champ de manière standard:

$phone_number = get_field( 'phone_number', 'option' );

Cependant, il existe une astuce que vous pouvez utiliser pour récupérer vos champs sur chaque page.

Si vos options ne fonctionnent que sur la page d'accueil, je suppose que vous avez créé des champs personnalisés sur la page d'administration de votre page d'accueil. Pour retrouver ces champs sur d'autres pages, transmettez votre identifiant de page d'accueil en second argument.

$homepage_id = get_option('page_on_front');

$phone_number = get_field( 'phone_number', $homepage_id );
2
kierzniak

En effet, vous définissez la valeur du champ en tant que valeur post_meta.

Pour obtenir ce que vous essayez d’atteindre, vous devez créer une page d’options. Voir: https://www.advancedcustomfields.com/resources/options-page/

Cela vous permettra d'afficher des données globalement.

0
Daniel Fonda