2016-11-06 25 views
0

Я отправляю этот вопрос, так как у меня есть небольшая проблема с добавлением информации об авторе к моему герою сообщений на моем сайте.Добавление информации об авторе за пределы цикла в Genesis

Я использую структуру Genesis с Wordpress, так что я сделал удаление информации о сообщении из сообщения и добавление его обратно в пост-герой. Это все работает, за исключением того, что имя автора больше не отображается, поскольку оно еще не загружено в цикле post.

// 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); 

Чтобы иметь возможность добавить информацию автора сообщений обратно в посте героя, я посмотрел StackOverflow и нашел ссылку, где OP был в состоянии исправить это путем создания шорткода для него и запустить его в герой-инфо

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

Этот шорткод [автор] затем добавляют в

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; 
    } 
} 

Это результат прямо сейчас: http://imgur.com/a/6lX5J показано в заблуждении место по какой-то причине. Кто-нибудь знает, как это может быть?

На сайте можно найти здесь: http://websforlocals.com/business/

Надежда Я дал достаточно информации, и что кто-то с той же проблемой может быть выручили.

+0

Это проблема в вашем шорткод регистрации кода вот почему ваше имя автора показывает в начале поста, а не в том месте, где у Вас есть свой шорткод .. Прочитайте мой ответ ниже справочную информацию. – Mohsin

ответ

0

Это проблема в вашем коротком коде, регистрирующем php-код.

При добавлении короткого кода мы не должны использовать ECHO, так как это не будет отражено в том месте, которое мы хотим, но в верхней части содержимого сообщения.

Поэтому всегда возвращайте выход в функцию короткого кода, а затем эхо-функцию короткого кода.

Теперь WordPress есть соглашение для функций, которые повторяют результат и который возвращает результат, т.е. the_author_meta против get_the_author_meta (первой, который вы используете, будет отображать/эхо результата, однако get_ функция будет возвращать значения).

Мы должны использовать get_the_author_meta вместо the_author_meta в вашем блоке регистрации коротких сообщений, и это решит вашу проблему с отображением местоположения.

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