Tragen Sie mit mir hier ..
Die Standardposts pro Seite im Admin-Bereich sind 10. Während einiger Tests wollte ich die Posts pro Seite für mein benutzerdefiniertes Post-Archiv auf 2 setzen (in WP 3.1).
Das Problem ist, dass ich nur 4 Posts habe, es also 2 Seiten mit jeweils 2 Posts geben sollte, aber da der Standardwert 10 ist, gibt/page/2 error-404 zurück (vorausgesetzt, mit 10 Posts pro Seite gäbe es keine keine zweite Seite sein)
Die einzige Möglichkeit, dies zu umgehen, bestand darin, die Standardeinstellung im Admin-Bereich auf 1 zu setzen, aber dies ist nicht wirklich ideal, da ich jetzt einen benutzerdefinierten query_post für alle Beitragstyp-Archive ausführen muss, um die Beiträge pro Seite festzulegen.
Hat jemand einen besseren Weg, um dies zu tun, oder irgendwelche Ideen? Vielen Dank.
archive-project.php:
<?php get_header(); ?>
<?php
global $wp_query;
query_posts(array_merge($wp_query->query, array(
'paged' => get_query_var('paged'),
'posts_per_page' => 2
)));
?>
<h1 class="title"><?php _e('Previous work', 'fullycharged'); ?></h1>
<?php if (have_posts()): while(have_posts()): the_post();?>
<a href="<?php the_permalink(); ?>" id="post-<?php the_ID(); ?>" <?php post_class('launch col col-' . $i); ?>>
<span class="project-title"><?php the_title(); ?></span>
<?php the_content(); ?>
</a>
<?php endwhile; endif; ?>
<?php if ($wp_query->max_num_pages > 1): ?>
<div id="nav-below" class="navigation">
<div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">←</span> Older posts', 'twentyten' ) ); ?></div>
<div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">→</span>', 'twentyten' ) ); ?></div>
</div>
<?php endif; ?>
<?php get_footer(); ?>
art des Registrierungspostens:
register_post_type('project', array(
'capability_type' => 'post',
'has_archive' => true,
'hierarchical' => false,
'labels' => array(
'name' => __('Projects', 'fullycharged'),
'singular_name' => __('Project', 'fullycharged'),
'all_items' => __('All Projects', 'fullycharged'),
'add_new_item' => __('Add New Project', 'fullycharged'),
'edit_item' => __('Edit Project', 'fullycharged'),
'update_item' => __('Update Project', 'fullycharged')
),
'menu_icon' => get_stylesheet_directory_uri() . '/images/monitor-off.png',
'menu_position' => 5,
'public' => true,
'publicly_queryable' => true,
'exclude_from_search' => false,
'rewrite' => array('slug' => 'work', 'with_front' => false),
'supports' => array('title', 'editor', 'thumbnail', 'custom-fields')
));
In den Wordpress.org-Supportforen wird genau zu diesem Thema diskutiert. Das OP zu dieser Diskussion hat eine Antwort gefunden, die jedoch noch nicht veröffentlicht wurde.
Trotzdem vielen Dank für Ihre Hilfe.
Mit der Aktion pre_get_posts
ändere ich normalerweise einen einzelnen Abfragewert für eine Taxonomie- oder Kategorieseite:
/**
* Control the number of search results
*/
function custom_posts_per_page( $query ) {
if ( $query->is_tax('mytaxonomy') || $query->is_category('mycategory') ) {
set_query_var('posts_per_page', 9);
}
}
add_action( 'pre_get_posts', 'custom_posts_per_page' );