2017-06-05 5 views
0

Ich habe einige Probleme mit der Standard-WP-Funktion get_the_author_meta(). Ich verwende es in meinem Projekt, um die soziale Verbindung eines Autors anzuzeigen, aber ich bekomme immer eine leere Variable.get_the_author_meta() funktioniert nicht auf wp

Hier ist mein Code in Artikel Seite:

$author_name = get_the_author();//not empty 
    $author_info = get_the_author_meta('description');//not empty 
    $author_website = get_the_author_meta('url');//empty 

    $author_facebook = get_the_author_meta('facebook');//empty 
    $author_twitter = get_the_author_meta('twitter');//empty 
    $author_google = get_the_author_meta('google');//empty 
    $author_linkedin = get_the_author_meta('linkedin','7');//also empty whit this desperate attempt 
    $author_instagram = get_the_author_meta('instagram',7);//also empty whit this desperate attempt 

ich auf einen Artikel eines Autors mit allen sozialen Link getestet. Ich habe kein PHP und kein JS-Fehler. Ich habe cimy user extra Felder installiert.

+0

Warum sollten Sie nicht zuerst die Autorendaten ausgeben, um zu sehen, ob diese Felder an erster Stelle stehen? – TurtleTread

+0

var_dump (get_the_author_meta()); // string (0) "" \t var_dump (get_the_author_meta (7)); // string (0) "" \t var_dump (get_the_author_meta ('7')); // string (0) "" Die sehr stabile Sache ist, dass alle diese Felder existieren und nicht leer in der DB sind. –

+0

Etwas sagt mir, dass Sie ein Plugin verwenden, um diese sozialen Links zum Autor hinzuzufügen. Die Felder, die leere Strings zurückgeben, sind gemäß dem Codex nicht gültig. https://codex.wordpress.org/Function_Reference/the_author_meta –

Antwort

0

Zuerst haben Sie hier ein zusätzliches Komma $ author_facebook = get_the_author_meta ('facebook',); // leer

Ich vermute, das war ein Fehler beim Kopieren einfügen, sonst erhalten Sie einen sehr spezifischen "unerwarteten Token" -Fehler. Mit dieser Ausnahme sollte Ihr Code funktionieren. Sie erhalten diesen Fehler möglicherweise aus zwei Gründen:

  1. Das Plugin, das Sie verwenden, um das Benutzermeta hinzuzufügen, funktioniert nicht ordnungsgemäß.
  2. Der eigentliche Autor der Seite/Post hat die Metadaten nicht richtig eingestellt.

Dieser Code für mich gearbeitet, versuchen Sie dies nur zu Test:

$user_id = get_the_author_meta('ID'); 
add_user_meta($user_id, 'facebook', 'https://facebook.com'); 

var_dump($user_id); 
var_dump(get_the_author_meta('facebook')); 

// Output: string(20) "https://facebook.com" 

Sie vorher erwähnt können Sie die Social-Media-Links auf der DB unter usermeta sehen, so meine Vermutung, dass der aktuelle Autor der Beitrag/Seite hat nicht die Social-Media-Links gesetzt. Auf den var_dumps des Codes sehen Sie die Benutzer-ID. Suchen Sie in der Datenbank alle Einträge der Tabelle usermeta mit dieser Benutzer-ID, und Sie werden feststellen, dass für diesen bestimmten Benutzer keine benutzerdefinierte Meta vorhanden ist.

+0

Vielen Dank, für die Erklärung. Jetzt bekomme ich endlich den kompletten Prozess. Ich habe auch einen zusätzlichen Fehler: - ich ersetze "** google **" durch "** googleplus **" –

+0

Ich bin froh, dass ich helfen konnte! –

Verwandte Themen