Ich versuche, Beiträge für Kategorien in meiner Datei category.php mit Paginierung anzuzeigen, aber wenn ich auf die Schaltfläche „Ältere Beiträge“ klicke, erhalte ich eine 404. Hier ist der Code, den ich derzeit für die Abfrage verwende:
<?php
// Get ID of category we're currently looking at
$cat = get_cat_id( single_cat_title("",false) );
query_posts(array(
'posts_per_page'=>25,
'cat' => $cat,
'paged' => ( get_query_var('paged') ? get_query_var('paged') : 1 )
));
if(have_posts()):
?>
Die von mir verwendete Permalink-Struktur ist /%category%/%postname%/
Ich habe gelesen, dass es einen Fehler gibt, der Sie mit einem 404-Fehler zurücklässt, wenn “posts_per_page” auf weniger als den Standardwert eingestellt ist, aber das scheint nicht das Problem zu sein. Der Standardwert in meinen Einstellungen ist 20.
Irgendwelche Ideen? Liegt das an den Permalink-Einstellungen? Sollte /category-name/page/2 nicht genauso funktionieren wie /blog-page/page/2?
Ich erhalte auch einen 404-Fehler, wenn ich versuche, auf Kategorien wie diese zuzugreifen: /category/cat-name oder /blog-page/category/cat-name
Vielen Dank!
Lauren
Das klingt sehr ähnlich zu dem, was ich erlebt habe (In meinem untergeordneten Thema führte der benutzerdefinierte Permalink %category%%postname% zu einem 404, wenn die Paginierung in category.php verwendet wurde, allerdings nur auf Seite 2).
Ich habe so viel Zeit damit verbracht, über verschiedene Ursachen und Lösungen für diesen Fehler zu lesen, in meinem Fall war es, dass WP nicht die richtige benutzerdefinierte Kategorie angefordert hat. Dieser Fix hat mir viel Zeit gespart!
Nachdem ich es geschafft hatte, die Paginierung für die Kategorie in Gang zu bringen, kam dieses Problem auf. Mit Ihrer Antwort funktioniert alles einwandfrei, danke!
– Lowtech-Sonne
9. Dezember 2016 um 11:21 Uhr
Das hat für 404 funktioniert. Jetzt zeigt www.domain.com/taxonomy/page/2 nicht 404, ABER es lädt jedes Mal nur den Inhalt der ersten Seite.
– Omar
21. März 2017 um 21:04 Uhr
Jawohl! danke … das Skript kombiniert mit dem query_posts in der ursprünglichen Antwort hat bei mir funktioniert
Vielen Dank!! (Ein Tippfehler: ändern is_category() zu && is_category().) Dem Himmel sei Dank für StackOverflow! Ich dachte, ich würde Stunden damit verbringen, dies zu beheben.
– Greg Perham
15. August 2018 um 1:17 Uhr
Ich hatte das gleiche Problem und Laurens Lösung hat mir geholfen. Mein Problem war, dass sich mit diesem Code die aktuelle Seite nicht geändert hat, sie blieb auf Seite 1 hängen.
In der functions.php habe ich folgenden Code hinzugefügt:
function custom_pre_get_posts($query)
{
if ($query->is_main_query() && !$query->is_feed() && !is_admin() && is_category()) {
$query->set('page_val', get_query_var('paged'));
$query->set('paged', 0);
}
}
add_action('pre_get_posts', 'custom_pre_get_posts');
und in der Kategorievorlage (category.php) habe ich diesen Code verwendet:
Dies löst auch 404-Probleme. Danke, dass du das gepostet hast. Ich hatte ein Problem, bei dem /category/news/page/2 404 anzeigte. Diese Lösung hat es behoben.
– HADI
4. November 2018 um 17:40 Uhr
Andreas Herder
Ich würde zuerst versuchen, zu WP_Query zu wechseln, es ist weniger fehlerhaft mit Pagination.
query_posts() ist eine zu einfache und problematische Möglichkeit, die Hauptabfrage einer Seite zu ändern, indem sie durch eine neue Instanz der Abfrage ersetzt wird. Es ist ineffizient (führt SQL-Abfragen erneut aus) und schlägt unter bestimmten Umständen völlig fehl (besonders häufig, wenn es um die Paginierung von Beiträgen geht).
Wenn das nicht funktioniert, versuchen Sie, Ihre Permalink-Struktur in Post-ID zu ändern, und sehen Sie, ob sich das ändert. Wenn beides nicht funktioniert, setzen Sie $cat auf eine Kategorie, von der Sie wissen, dass sie existiert (und 26 Posts hat), und stellen Sie sicher, dass das Problem nicht dadurch verursacht wird.
Hoffe das hilft.
Das funktioniert, wenn ich die Permalink-Struktur aus ändere /%category%/%postname% zu /%category%/%post_id%. Aber das ist nicht wirklich eine praktikable Option. Ich brauche den Beitragstitel in den URLs für SEO-Zwecke.
– Nick
11. Mai 2015 um 17:36 Uhr
Es funktioniert, wenn ich einen Link von ändere /%category%/page/2/ zu /category/%category%/page/2/. Die WordPress-Funktionen, die Links zu älteren/neueren Beiträgen hinzufügen, haben dies jedoch nicht in ihren URLs.
– Nick
11. Mai 2015 um 18:05 Uhr
Sie könnten dies versuchen wordpress.org/support/view/plugin-reviews/… Es wurde seit 2 Jahren nicht aktualisiert, aber es gibt einen Überprüfungsbeitrag vom letzten Monat, der besagt, dass es immer noch funktioniert. (Es sind nur zwei kleine Funktionen.) Hoffentlich kann dies Ihnen helfen, das Problem zu lösen.
– Andreas Herder
12. Mai 2015 um 21:14 Uhr
Vielen Dank! Das hat teilweise funktioniert. Ich musste ein paar Dinge im Plugin ändern, damit es funktioniert. Der Code ist hier für alle, die ihn brauchen könnten: creative.link/code/wordpress-category-pagination-fix