2016-08-22 89 views
0

我正在嘗試創建一個類似於WordPress提供的默認帖子的額外內容區域。我的結果是在頁面上循環這些帖子,而不需要WordPress默認帖子,因爲它們將用於我的博客。WordPress自定義帖子部分

我已經設置管理區域來創建帖子,它顯示在我的主題中,但我遇到了麻煩。它只顯示最近的帖子,而不是循環所有帖子

我用了一個指導,幫助我建立這個。 adding editable areas這可能會幫助你們理解。

任何人都知道如何解決它,因此它顯示所有帖子,而不僅僅是最近的?

到目前爲止我的代碼:

例如-page.php文件

<p> 
    <?php $content_block = new WP_Query(array('post_type'=>'content-block', 
    'posts_per_page'=>10, 'content-position'=>'about-bottom'))?> 
    <?php if($content_block->have_posts()): $content_block->the_post(); ?> 
    <?php the_content();?> 
    <?php endif; ?> 
</p> 

的functions.php

function initialize_content_blocks() { 
    register_post_type('content-block', array(
    'labels' => array(
     'name' => 'Page Content ', 
     'singular_name' => 'Content Block', 
     'add_new_item' => 'Add New Content Block', 
     'edit_item' => 'Edit Content Block', 
     'new_item' => 'New Content Block', 
     'view_item' => 'View Content Block', 
     'search_items' => 'Search Content Blocks', 
     'not_found' => 'No content_blocks found', 
     'not_found_in_trash' => 'No content blocks found in Trash', 
     'view' => 'View Content Block' 
    ), 
    'publicly_queryable' => false, 
    'exclude_from_search' => true, 
    'public' => true, 
    'rewrite' => false, 
    'supports' => array('title', 'editor'), 
    'taxonomies' => array() 
)); 

    register_taxonomy('content-position', array('content-block'), array(
    'rewrite' => false, 
    'labels' => array(
    'name' => 'Content Positions', 
    'singular_name' => 'Content Position', 
    'search_items' => 'Search Content Positions', 
    'popular_items' => 'Popular Content Positions', 
    'all_items' => 'All Content Positions', 
    'edit_item' => 'Edit Content Position', 
    'update_item' => 'Update Content Position', 
    'add_new_item' => 'Add New Content Position', 
    'new_item_name' => 'New Tag Content Position' 
), 
    'show_tagcloud' => false, 
    'hierarchical' => true 
)); 

} 
add_action('init', 'initialize_content_blocks'); 

回答

0

是的,你錯過了實際的循環。並且重置您的自定義查詢也很好。在代碼後添加wp_reset_postdata()。

$content_block = new WP_Query(array('post_type'=>'content-block' ...)); 

if($content_block->have_posts()) 
{ 
    while($content_block->have_posts()) 
    { 
     $content_block->the_post(); 
     the_content(); 
    } 
} 

wp_reset_postdata(); 
+0

我不得不稍微調整一些代碼,因爲wordpress使用不同的語法,但現在它可以工作。感謝您展示代碼。 – creativecoder

1

你錯過了實際通過結果循環,見例如have_posts()文檔。

通知while (have_posts())致電。這將使WordPress循環遍歷查詢中的所有帖子。

+0

你能用while循環寫入代碼嗎?我遇到了麻煩 – creativecoder