web-dev-qa-db-de.com

Verwenden der benutzerdefinierten Funktion mit erweiterten benutzerdefinierten Feldern

Ich habe eine benutzerdefinierte Funktion geschrieben, die mit der nativen Funktion für benutzerdefinierte WordPress-Felder funktioniert, aber ich benötige sie, um mit dem Plugin für erweiterte benutzerdefinierte Felder arbeiten zu können.

Ich habe das benutzerdefinierte Feld und die Meta-Box mit dem Plugin erstellt und die Funktion zur functions.php-Datei meines untergeordneten Themas hinzugefügt.

Ich verwende den Feldnamen (demo_field) für die Meta-Box in der benutzerdefinierten Funktion, aber die Meta-Box greift nicht in die Funktion ein.

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

Was mache ich falsch?

Ok, ich habe das behoben, aber es gibt das Bild nicht zurück, obwohl ich die Einstellungen so konfiguriert habe, dass sie den Wert für das Bildobjekt zurückgeben.

Es zeigt den HTML-Code für das Bild an.

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

Folgendes wird angezeigt:

32538, zweites Feature-Image, /wp-content/uploads/2013/06/second-feature-image.png, 600, 300, Array

Hier ist die endgültige Lösung, die ich selbst ausgearbeitet habe und die ich nur mit Genesis getestet habe. Sie können den Haken ändern, wenn Sie ein anderes Thema mit Haken verwenden.

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;

}

Der Code stammt von der ACF-Website. http://www.advancedcustomfields.com/resources/field-types/image/

2
Haymanpl

Gibt es einen Grund, warum Sie genesis_custom_field() verwenden? Erweiterte benutzerdefinierte Felder verfügen über eigene Ausgabefunktionen. Wenn Sie den demo_field ausgeben möchten, können Sie die Funktion the_field('demo_field'); verwenden, oder wenn Sie den Wert verwenden oder als Variable speichern möchten, können Sie $demo = get_field('demo_field'); verwenden.

1
Ashraf Slamang

Ich habe versucht, dies für immer herauszufinden! Perfekte Lösung, Ashraf.

Nur um anderen Neulingen wie mir zu erklären ... Gehen Sie zum Dashboard "Erweiterte benutzerdefinierte Felder" und bearbeiten Sie das Feld, in dem "Rückgabewert" steht. Aktivieren Sie das Optionsfeld für "Bild-URL" anstelle von Objekt oder ID. Es funktioniert perfekt in Genesis. Hier ist der Code, den ich für mein Bildfeld 'rating_award_2' verwende:

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