wake-up-neo.com

Benutzerdefinierter Permalink mit Paginierung

Ich habe einen benutzerdefinierten Beitragstyp mit dem Namen news und um aktuelle und alte Beiträge zu unterscheiden, habe ich ein benutzerdefiniertes Feld, in dem der Kunde einen Beitrag als '_ markieren kann.archiviert '.

Mein Code zum Umschreiben von Permalinks sieht also so aus:

function custom_rewrite_rule() {
    add_rewrite_rule('^news/archive/?','index.php?post_type=news‌​&news_archive=true',‌​'top'); 
    add_rewrite_rule('^news/archive/page/([0-9]+)?/?$','index.php?post_type=news&news_archive=true&paged=$matches[1]','top');   
}
add_action('init', 'custom_rewrite_rule', 10, 0);

function add_query_vars_filter( $vars ){
    $vars[] = "news_archive";
    return $vars;
}
add_filter( 'query_vars', 'add_query_vars_filter' );

Das erste Bit funktioniert, aber das Problem liegt in der Paginierung. Ich kann auf dasnews_archivequery_var zugreifen, aber nicht auf daspagedquery_var.

Was ist der richtige Weg, um Seiten in dieses Umschreiben von Permalinks einzubeziehen?

3
juliusbangert

Das Problem ist, dass Ihre erste Regel alles erfasst, was mit news/archive/ beginnt.

Fügen Sie den Anker $ hinzu, der mit only news/archive/ übereinstimmt:

add_rewrite_rule(
    '^news/archive/?$',
    'index.php?post_type=news&news_archive=true',
    'top'
);

Ihre Paginierungsregel wird dann so funktionieren, wie sie ist, nachdem Sie die Permalinks gelöscht haben.

2
Milo