web-dev-qa-db-fra.com

Comment puis-je modifier une URL en fonction de l'URL d'origine?

Ceci fait suite à ma question: " Comment puis-je avoir deux URL différentes pour la même page qui chargent deux modèles différents? "

En supposant que j'implémente la réponse de Milo (enregistrement d'un nouveau point de terminaison de réécriture, charge un modèle différent si le point de terminaison est présent), comment puis-je avoir des liens dans la page réécrits à la volée pour inclure le point de terminaison (par exemple, app-view).

La page à laquelle le noeud final initial serait ajouté est la suivante: https://liquidchurch.com/messages/

D'après les instructions de Milo utilisant le filtre de modèle de page et de terminaison de réécriture, l'URL que je transmettrais depuis l'application mobile serait: https://liquidchurch.com/messages/app-view/

Maintenant sur cette page, je clique sur l’une des séries, par exemple:

https://liquidchurch.com/sermon-series/divine-direction/

Le problème est que cela se chargera avec le modèle standard, pas avec le modèle créé en particulier pour la vue mobile. Il faut donc que je passe à cette page pour qu'elle soit affichée dans l'application. Ainsi, l'URL vers laquelle l'individu devrait être redirigé serait:

https://liquidchurch.com/sermon-series/divine-direction/app-view/

De quelle manière pourrait-on accomplir cela? Merci!

2
davemackey

Vous pouvez utiliser le filtre page_link avec la même logique que le filtre page_template dans l'autre réponse. Si la requête de noeud final var est définie, tout lien vers une page reçoit le app-view/ ajouté:

function wpd_page_link( $link, $post_id ){
    global $wp_query;
    if( isset( $wp_query->query_vars['app-view'] ) ){
        return $link . 'app-view/';
    }
    return $link;
}
add_filter( 'page_link', 'wpd_page_link', 10, 2 );
1
Milo