2016-11-06 3 views
0

Je poste cette question car j'ai un peu de mal à ajouter les informations sur l'auteur à mon post-héros sur mon site. J'utilise le framework Genesis avec Wordpress, ce que j'ai fait est de supprimer les informations post du post et de le rajouter dans le post-héros. Tout cela fonctionne, sauf que le nom de l'auteur n'est plus affiché car il n'est pas encore récupéré dans la boucle de post.Ajout d'informations sur l'auteur en dehors de la boucle dans Genesis

// Remove entry title 
    remove_action('genesis_entry_header', 'genesis_do_post_title'); 
    // Remove post info 
    remove_action('genesis_entry_header', 'genesis_post_info', 12); 
    // Add page title 
    add_action('hero-info', 'genesis_do_post_title'); 
    // Add page info 
    add_action('hero-info', 'genesis_post_info', 12); 

Pour pouvoir ajouter l'information post auteur retour dans le héros post, je l'ai regardé stackoverflow et a trouvé un lien où l'OP a pu réparer en créant un shortcode pour elle et en cours d'exécution dans le héros-info

function author_shortcode() { 
    global $post; 
    $author_id=$post->post_author; 
    the_author_meta('display_name', $author_id); 
} 
add_shortcode('author', 'author_shortcode'); 

Ce shortcode [auteur] est ensuite ajouté dans

add_filter('genesis_post_info', 'custom_post_info'); 
function custom_post_info($post_info) { 
    if (is_archive() || is_home()) { 
     $post_info = __('Article by [author] [post_author_posts_link] on [post_date] - [post_comments zero="Leave a Comment" one="1 Comment" more="% Comments" hide_if_off="disabled"]', 'tcguy'); 
     return $post_info; 
    } 
} 

Ceci est le résultat aujourd'hui: http://imgur.com/a/6lX5J Il est indiqué dans le mauvais placer pour une raison quelconque. Quelqu'un sait comment cela peut être?

Le site se trouve ici: http://websforlocals.com/business/

espoir que j'ai donné assez d'informations, et que quelqu'un avec le même problème peut être aidé.

+0

Il est question dans votre code enregistrement shortcode c'est pourquoi votre nom de l'auteur montre au début du poste et non à l'endroit où vous avez votre shortcode .. Lire ma réponse ci-dessous pour plus d'informations de fond. – Mohsin

Répondre

0

Il est question dans votre ShortCode d'enregistrer le code php. Lorsque vous ajoutez un code court, nous ne devrions rien ECHO de cette façon, il ne sera pas répercuté à l'endroit où nous voulons, mais en haut du contenu du message.

Renvoyez donc toujours la sortie dans la fonction de code de fonction, puis renvoyez la fonction de code court.

maintenant WordPress ont une convention pour les fonctions qui font écho le résultat et qui renvoie le résultat, à savoir the_author_meta vs get_the_author_meta (première que vous utilisez affiche/écho le résultat, mais les fonctions get_ retourne les valeurs).

Nous avons besoin d'utiliser get_the_author_meta au lieu de the_author_meta dans votre bloc d'enregistrement de shortcode et cela va résoudre votre problème de localisation.

function author_shortcode() { 
global $post; 
$author_id=$post->post_author; 
return get_the_author_meta('display_name', $author_id); 
} 
add_shortcode('author', 'author_shortcode');