2013-12-09 4 views
0

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

Может ли кто-нибудь помочь?

Кодекс:

function JDD_display_stores() { 

    ob_start(); 

    $args = array(
     'post_type' => 'stores', 
     'tax_query' => array(
      array(
       'taxonomy' => 'store', 
       'field' => 'slug' 
      ) 
     ) 
    ); 

    $success = new WP_Query($args); 

    if($success->have_posts()) { 

     while($success->have_posts()) { 

      $success->the_post(); 

      ?> 
       <h1><?php the_title() ?></h1> 

       <div class='content'> 

        <?php the_content() ?> 

       </div> 

      <?php 
      return $success; 
     } 
    } 
    else { 
     echo 'No stores have been added!'; 
    } 
} 

add_shortcode('display_stores', 'JDD_display_stores'); 

ответ

1

Вам нужно возврат заголовки и содержание, а не вторя его
(который the_content() и the_title() делают)

как:

$output = ''; 

while($success->have_posts()) { 
    $success->the_post(); 

    $output .= sprintf("<h1>%s</h1>", get_the_title()); 
    $output .= sprintf('<div class="content">%s</div>', get_the_content()); 

} 

//reset the orignal main query 
//see http://codex.wordpress.org/Function_Reference/wp_reset_query 
wp_reset_query(); 

return $output; 

.. вам понадобится получите _the_title() и получите _the_content().

принять Также помощь, что вы положили returnвне в то время цикла, в противном случае вы будете выйти из функции в первой итерации ...

см http://codex.wordpress.org/Function_Reference/get_the_content
& http://codex.wordpress.org/Function_Reference/get_the_title

+0

возврата the_title (); ?? – jolen

+0

да, но для этого вам понадобится get_the_title(). обновленный мой ответ –

+0

попробовали код, но все, что получается, это:/h1> /div> в моем стиле h1 – jolen

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