2015-05-10 6 views
1

Я пытаюсь показать, в зарегистрированном виджета области, некоторые категории после этой части кода:WordPress the_content() не отображается в правильном DIV

function category_post_shortcode($atts){ 
    extract(shortcode_atts(array(
     'title' => '', 
     'link'  => '', 
     'category' => '', 
    ), $atts, 'category_post')); 

    $q = new WP_Query(
     array('category_name' => $category, 'posts_per_page' => '2', 'post_type' => 'post') 
    ); 
    $list = '<article class="format-standard" id="post-70">'; 

    while($q->have_posts()) : $q->the_post(); 
     //get the ID of your post in the loop 
     $id = get_the_ID(); 

     $post_excerpt = get_post_meta($id, 'post_excerpt', true); 
     $post_thumbnail= get_the_post_thumbnail($post->ID, 'post-thumbnail'); 
     $list .= ' 

      <div class="single_cate_post floatleft"> 
      '.$post_thumbnail.' 
      <h3>'.get_the_title().'</h3> 
      '.the_content().' //the content is not shown after h3 tag. 
      <a href="'.get_permalink().'" class="readmore">Read More</a> 
      </div> 

     '; 
    endwhile; 
    $list.= ' </article>'; 
    wp_reset_query(); 
    return $list; 
} 
add_shortcode('category_post', 'category_post_shortcode'); 
add_filter('widget_text', 'do_shortcode'); 

Он должен показать текст сообщения the_content() после <h3>'.get_the_title().'</h3>. Тем не менее, текст сообщения доходит до изображения миниатюр. Пожалуйста, смотрите здесь: image of the problem. (Формат этого изображения не поддерживается для встраивания в вопрос SO).

+0

Спасибо за предложение редактирования –

ответ

0

Пока вы добавляете строки в $list, get_content(), сразу же перебирает содержимое. Вот почему вы должны использовать get_the_content() на этом этапе.

Вы можете использовать get_the_content(), чтобы возвращать значение содержимого, а не выводить его напрямую.

- WordPress Codex

Добавление простой "" будет исправить вашу проблему:

$list .= get_the_content(); 
+0

Привет, я использовал get_the_content и решить проблему ! –

Смежные вопросы