2017-05-01 131 views
0

我嘗試在wordpress中使用簡碼方式自定義我自己的帖子。我想根據其類別顯示帖子。如何在wordpress中自定義文章?

<?php 

function sample_post($atts) { 
    extract(shortcode_atts(array(
     'category_name' => 'uncategorized' 
    ), $atts)); 

    $args = array('category_name' => $category_name); 
    query_posts($args); 
    if (have_posts()) : while (have_posts()) : the_post(); ?> 
     <label><?php the_title(); ?></label> 
    <?php 
     endwhile; 
    endif; 
} 

add_shortcode('sample_post', 'sample_post'); 

?> 

的代碼是很好,我有一個文件在我的模板名稱content-page.php 這裏是我的內容頁

<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> 
    <header class="entry-header"> 
     <h1 class="entry-title"><?php the_title(); ?></h1> 
    </header><!-- .entry-header --> 

    <div class="entry-content"> 
     <?php the_content(); ?> 
     <?php 
      wp_link_pages(array(
       'before' => '<div class="page-links">' . __('Pages:', 'unite'), 
       'after' => '</div>', 
      )); 

      edit_post_link(__('Edit', 'foodgrower'), '<span class="edit-link">', '</span>'); 
     ?> 
    </div><!-- .entry-content --> 

</article><!-- #post-## --> 

的代碼,我不知道如果我錯過有關安裝的東西或對其進行查詢。這是我真正想要展示的。我只想顯示<label><?php the_title(); ?></label>(帖子的標題),但現在它顯示content-page.php。我不明白爲什麼它出現在我的頁面中。我沒有打電話給content-page.php來顯示在我的頁面中。

回答

0

更改您的代碼返回數據,如下所示,

function sample_post($atts) { 
    $return = ''; 
    extract(shortcode_atts(array(
     'category_name' => 'uncategorized' 
    ), $atts)); 

    $args = array('category_name' => $category_name); 
    $the_query = new WP_Query($args); 
    if ($the_query->have_posts()) : while ($the_query->have_posts()) : $the_query->the_post(); 
     $return .= "<label>".the_title()."</label>"; 
     endwhile; 
    endif; 
    return $return; 
} 

add_shortcode('sample_post', 'sample_post'); 
+0

仍然content_page.php工作。它仍然是相同的結果 – user3818576

+0

問題看起來不同。嘗試用WP_Query()將其切換出來。我能舉一個例子嗎? –

+0

好的。我會嘗試 – user3818576

相關問題