2016-08-22 13 views
0

Ich versuche, einen zusätzlichen Inhaltsbereich zu erstellen, der den Standard-Posts WordPress bietet ähnelt. Mein Ziel ist es, diese Posts auf einer Seite zu wiederholen, ohne WordPress-Standard-Posts zu benötigen, da sie für mein Blog verwendet werden.WordPress benutzerdefinierte Beiträge Abschnitt

Ich habe den Admin-Bereich eingerichtet, um Beiträge zu erstellen und es wird in meinem Thema angezeigt, aber ich habe Probleme. Es zeigt nur die letzten Post, anstatt alle Beiträge

Ich habe eine Anleitung, die mir geholfen, dies zu bauen. adding editable areas, die Ihnen helfen können, zu verstehen.

Wer weiß, wie man es repariert, so dass es alle Beiträge anzeigt, nicht nur die neuesten?

mein Code so weit:

Beispiel-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'); 

Antwort

0

Ja, Sie haben die eigentliche Schleife verpasst. Und es ist auch gut, Ihre benutzerdefinierte Abfrage zurückzusetzen. Fügen Sie wp_reset_postdata() nach Ihrem Code hinzu.

$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

Ich musste etwas von Ihrem Code etwas anpassen, da Wordpress verschiedene Syntax verwendet, aber es funktioniert jetzt. Danke für den Code. – creativecoder

1

Sie verfehlten den tatsächlichen durch die Ergebnisse Looping finden Beispiel in have_posts() Dokumentation.

Hinweis while (have_posts()) Anruf. Dadurch wird die WordPress-Schleife durch alle Posts in der Abfrage durchlaufen.

+0

könnten Sie den Code mit der While-Schleife schreiben? Ich habe Probleme – creativecoder

Verwandte Themen