web-dev-qa-db-fra.com

Comment obtenir uniquement l'URL de la page suivante (sans balise <a>)

Voici ma fonction

function next_pages( $args = '' ) {
    $r = wp_parse_args( $args, $defaults );
    extract( $r, EXTR_SKIP );
    global $page, $numpages, $multipage, $more, $pagenow;
    $output = '';
    if ( $multipage ) {
            if ( $more ) {
                $output .= $before;
                $i = $page + 1;
                if ( $i <= $numpages && $more ) {
                    $output .= _wp_link_page( $i );
                    $output .= $nextpagelink;
                }
                $output .= $after;
            }
    }
    if ( $echo )
    echo $output;
    return $output;
}

Cela inclut l’élément externe, le nom, etc. Je veux juste le lien, par exemple.

http://domain.com/article/2

Merci beaucoup

4
Fayens

Si vous extrayez la source du _wp_link_page , tous les calculs d'URL sont codés directement à l'intérieur. Vous pouvez soit lever ce code directement dans votre propre fonction, ou saupoudrer un peu regex autour de la fonction existante:

function wpse_204737_get_post_page_url( $i ) {
    if ( preg_match( '/href="([^"]+)"/', _wp_link_page( $i ), $match ) )
        return $match[1];
}

Il est à noter que _wp_link_page est une fonction "privée" et n'est pas destiné à être utilisé dans des plugins et des thèmes tiers - il peut être renommé/supprimé/obsolète dans une version ultérieure.

5
TheDeadMedic