Ours avec moi ici ..
La valeur par défaut des publications par page dans la zone d'administration est 10. Lors de certains tests, je souhaitais modifier le nombre de publications par page de mon archive de publications personnalisées sur 2 (dans WP 3.1).
Le problème est que je n'ai que 4 articles, donc il devrait y avoir 2 pages avec 2 articles sur chaque, mais comme la valeur par défaut est 10, aller à/page/2 renvoie l'erreur-404 (en supposant que, avec 10 articles par page, il ne s pas une deuxième page)
La seule façon de contourner cela était de définir la valeur par défaut dans la zone d'administration sur 1, mais ce n'est pas vraiment idéal car je dois maintenant créer un query_post personnalisé pour toutes les archives de type publication afin de définir les publications par page.
Quelqu'un a-t-il une meilleure façon de faire cela ou des idées? Merci.
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(); ?>
enregistrer le type de poste:
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')
));
Il existe une discussion sur les forums d'assistance de Wordpress.org à propos de ce problème précis. Le PO sur cette discussion a trouvé une réponse mais n'a pas encore posté.
Merci pour votre aide quand même.
Voici ce que j'utilise habituellement avec l'action pre_get_posts
pour modifier une valeur de requête unique pour une page de taxonomie ou de catégorie:
/**
* 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' );