web-dev-qa-db-fra.com

Using custom fonction with advanced custom

J'ai écrit une fonction personnalisée qui fonctionne avec la fonction de champs personnalisés WordPress native, mais j'ai besoin que cela fonctionne avec le plugin Advanced Custom Fields.

J'ai créé le champ personnalisé et la méta-boîte à l'aide du plug-in et ajouté la fonction au fichier functions.php de mon thème enfant.

J'utilise le nom du champ (demo_field) pour la méta-boîte dans la fonction personnalisée, mais la méta-boîte ne se connecte pas à la fonction.

add_action( 'genesis_after_post_content', 'custom_field_before_content' );
function custom_field_before_content() {
  if(is_single() ) {
    genesis_custom_field('demo_field');
  }
}

Qu'est-ce que je fais mal?

Ok, j'ai corrigé cela, mais cela ne renvoie pas l'image même si j'ai configuré les paramètres pour renvoyer une valeur pour l'objet image.

Il affiche le code HTML de l'image.

add_action( 'genesis_after_post_title', 'custom_field_before_content' );
function custom_field_before_content() {
if(is_single() ) {
the_field('second_image');
  }
}

Voici ce qu'il affiche:

32538, deuxième image de fond, /wp-content/uploads/2013/06/second-feature-image.png, 600, 300, Array

Voici la solution finale que j'ai moi-même mise au point, que j'ai testée et qui fonctionne uniquement avec Genesis. Vous pouvez changer le crochet si vous utilisez un autre thème avec des crochets.

add_action( 'genesis_after_post_title', 'custom_field_before_content' );
function custom_field_before_content() {
if(is_single() ) 
if( get_field('second_image') ):
?><img src="<?php the_field('second_image'); ?>" alt="" /><?php
endif;

}

Le code provient du site Web d'ACF. http://www.advancedcustomfields.com/resources/field-types/image/

2
Haymanpl

Pourquoi utilisez-vous genesis_custom_field()? Les champs personnalisés avancés possèdent leurs propres fonctions de sortie. Si vous voulez faire écho au demo_field, vous pouvez utiliser la fonction the_field('demo_field'); ou si vous voulez utiliser la valeur ou l'enregistrer en tant que variable, vous pouvez utiliser $demo = get_field('demo_field');.

1
Ashraf Slamang

J'ai essayé de comprendre cela pour toujours! Solution parfaite, Ashraf.

Juste pour clarifier pour d'autres débutants comme moi ... Accédez au tableau de bord Champs personnalisés avancés et modifiez le champ où il est indiqué "Valeur renvoyée". Sélectionnez le bouton radio pour 'URL de l'image' au lieu de l'objet ou de l'ID. Cela fonctionne parfaitement dans la Genèse. Voici le code que j'utilise pour mon champ d'image 'rating_award_2':

add_action('genesis_sidebar', 'rating_award_2');

function rating_award_2() {
if(is_single() ) 
if( get_field('rating_award_2') ):
?><img src="<?php the_field('rating_award_2'); ?>" alt="" /><?php
endif;
}
0
user55013