J'ai une page dans ' Pages ' appelée ' News '. Cette page contient un modèle contenant mon WP_Query
personnalisé paginé.
Voici le code:
<?php
$paged = 1;
if (get_query_var('paged')) {
$paged = get_query_var('paged');
} elseif (get_query_var('page')) {
$paged = get_query_var('page');
}
$arguments = array (
'posts_per_page' => 3,
'post_type' => 'fltnews',
'paged' => $paged,
'meta_key' => 'publish_date',
'orderby' => 'meta_value',
'order' => 'DESC'
);
$custom_wp_query = new WP_Query($arguments);
$temp_wp_query = $wp_query;
$wp_query = NULL;
$wp_query = $custom_wp_query;
echo "<ul class='content-list'>";
if ($custom_wp_query->have_posts()) :
while ($custom_wp_query->have_posts()) : $custom_wp_query->the_post();
echo "<li class='content-list-item'>";
$podsForNewsItem = pods('fltnews', $post->ID);
$podsImage = pods_image ( $podsForNewsItem->display( 'thumbnail_picture'), 'full');
if ($podsImage != ""){
$podsImage = "<div class='content-list-thumbnail-picture'>" . $podsImage . "</div>";
}
printf("<a href='%s' class='item-container'>%s
<div class='content-list-body'>
<div class='content-list-publisher'>
<div class='date-block'><span class='date'>%s</span></div>
</div>
<div class='content-list-title'>%s</div>
<div class='content-list-text'>%s</div>
<div class='content-list-link'>Les mer</div>
</div>
</a>",
esc_url(get_permalink($post->ID)),
$podsImage,
getDateAsNorwegian($podsForNewsItem->field('publish_date')),
$post->post_title,
$post->post_excerpt);
echo "</li>";
endwhile;
wp_reset_postdata();
previous_posts_link('Nyere »');
next_posts_link('« Eldre nyheter', $custom_wp_query->max_num_pages);
$wp_query = NULL;
$wp_query = $temp_wp_query;
endif;
echo "</ul>";
?>
J'ai examiné les questions et réponses suivantes:
Il semble que tout le monde corrige toujours le problème 404 en ajoutant la clé et la valeur ' paginée ' au WP_Query
. Cependant, cela ne fonctionne pas pour moi.
La page ' News ' se trouve à l'URL suivante:/news. Le next_posts_link
donne le lien suivant:/news/page/2.
C’est celui qui me donne le numéro 404. Mes paramètres de lien permanent sont les suivants: Jour et nom.
Je ne comprends pas pourquoi je reçois le 404.
J'ai fait ce que Rarst m'a dit de faire. J'ai tout d'abord cherché dans la documentation de Pods Framework . Cela a résolu mon problème.
Voici à quoi ressemble le code en ce moment.
<?php
$params = array(
'orderby' => 'publish_date.meta_value DESC',
'limit' => 10
);
$fltNewsPods = pods( 'fltnews', $params );
while ($fltNewsPods->fetch()) {
echo "<li class='content-list-item'>";
$podsForNewsItem = pods('fltnews', $fltNewsPods->display( 'id' ));
$podsImage = pods_image ( $podsForNewsItem->display( 'thumbnail_picture'), 'full');
if ($podsImage != ""){
$podsImage = "<div class='content-list-thumbnail-picture'>" . $podsImage . "</div>";
}
printf("<a href='%s' class='item-container'>%s
<div class='content-list-body'>
<div class='content-list-publisher'>
<div class='date-block'><span class='date'>%s</span></div>
</div>
<div class='content-list-title'>%s</div>
<div class='content-list-text'>%s</div>
<div class='content-list-link'>Les mer</div>
</div>
</a>",
esc_url(get_permalink($podsForNewsItem->display( 'id' ))),
$podsImage,
getDateAsNorwegian($podsForNewsItem->field('publish_date')),
$podsForNewsItem->display( 'title' ),
$podsForNewsItem->display( 'excerpt' ));
echo "</li>";
}
echo $fltNewsPods->pagination( array(
'type' => 'paginate',
'prev_next' => false,
'first_last' => false
) );
echo "</ul>";
?>
C'est fondamentalement la même chose, bien que l'utilisation élevée du cadre des pods.
J'imagine que cela ne fonctionnait pas avec la version WP_Query, car il ne s'agissait pas d'un type d'article personnalisé, de sorte qu'il n'utilisait pas Wordpress Framework. Wordpress ne saurait pas comment cela devrait être paginé.