In man­chen WordPress-Anwen­dungs­fäl­len kommt es vor, dass im Tem­p­la­te “single.php” für einen Bei­trag oder für einen benut­zer­de­fi­nier­ten Con­tent Typen im Tem­p­la­te “single-{post_type}.php” eine Pagi­nie­rung statt­fin­den soll.

Ein Bei­spiel wäre hier, dass alle wei­te­ren Bei­trä­ge oder Con­tent Typen direkt unter dem Inhalt des Bei­tra­ges oder Con­tent Typen ange­zeigt und in die­sem auch pagi­niert wer­den können.

Pro­blem dabei ist, dass der Fil­ter “redirect_canonical” bei einem Auf­ruf der Bei­trags­sei­ten oder Sei­te des Con­tent Typen mit den Per­ma­link-Para­me­tern für die Pagi­nie­rung “…/beitrag/page/x”  dazwi­schen­funkt und auf “../beitrag/” wei­ter­lei­tet. Der Fil­ter kann über fol­gen­den Code ange­passt werden:

add_filter( 'redirect_canonical', 'namespace_redirect_canonical' );
function namespace_redirect_canonical( $redirect_url ) {

    if ( is_singular( 'MY_CUSTOM_POST_TYPE' ) ){
        $redirect_url = false;
    }

    return $redirect_url;
}

Das Bei­spiel schal­tet die Wei­ter­lei­tun­gen für ein­kom­men­de Links für den Bei­trags­ty­pen “MY_CUSTOM_POST_TYPE” aus. Ob eine Wei­ter­lei­tung not­wen­dig ist, kann als Erwei­te­rung die­ses Bei­spiels abge­prüft wer­den und bei Bedarf mit Pagi­nie­rungs-Para­me­tern wei­ter­ge­lei­tet werden.