Hey. Ich verwende einen benutzerdefinierten Beitragstyp in WordPress. Ich registriere diesen benutzerdefinierten Beitragstyp wie folgt:
register_post_type("lifestream", array(
'label' => 'Lifestream',
'public' => true,
'hierarchical' => true,
'menu_position' => 5,
'supports' => array('title','editor','author','thumbnail','comments','custom-fields'),
'taxonomies' => array('category','post_tag'),
'query_var' => true,
'publicly_queryable' => true,
'exclude_from_search' => false,
'caller_get_posts' => 1
));
register_taxonomy_for_object_type('category', 'lifestream');
register_taxonomy_for_object_type('post_tag', 'lifestream');
Im Theme (dem Loop-Template) kombiniere ich gerne Posts und meinen benutzerdefinierten Post-Typ, dafür verwende ich query_posts() mit diesen Parametern:
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'post_type' => array('post', 'lifestream'),
'paged' => $paged,
'cat' => $wp_query->get('cat'),
'tag' => $wp_query->get('tag'),
'year' => $wp_query->get('year'),
'monthnum' => $wp_query->get('monthnum'),
'post_status' => 'publish',
'showposts' => 3
);
query_posts($args);
# the loop
while ( have_posts() ) : the_post();
# markup
endwhile;
if($wp_query->max_num_pages > 1):
# next_posts_link / previous_posts_link
endif;
wp_reset_query();
Das funktioniert bisher. Aber ich habe Probleme mit den Kategorie- und Tag-Seiten. Wenn ich die Startseite aufrufe, ist alles in Ordnung und ich kann durch die Seiten blättern und bekomme die richtigen Ergebnisse.
Und wenn ich eine ausgelagerte URL aufrufe, zB /category/mycat/page/2, wird ein 404 geworfen. Aber es sollte auf jeden Fall Beiträge geben. Egal ob es benutzerdefinierte Posts oder normale Posts in der Kategorie gibt. Ich nehme an, dass meine Parameter für query_posts() nicht korrekt sind, aber ich weiß es nicht …
Es scheint, dass $wp_query->max_num_pages den falschen Wert hat. Aber wieso? Registriere ich die Taxonomien (ich verwende gerne Kategorien und Tags für meine benutzerdefinierten Beitragstypen) korrekt?
Hast du eine Idee, was zu tun ist? Danke vielmals!