web-dev-qa-db-fra.com

Comment vérifier si une page existe par URL?

J'ai besoin d'afficher certains contenus en fonction de l'existence ou non d'une URL de page. Je ne veux pas vérifier par titre, car certaines pages auront le même titre et juste des pages parentes différentes.

Par exemple une page peut être:

  1. http://example.com/analysis/firstNamelastName
  2. http://example.com/exercise/firstNamelastName

J'ai juste besoin de savoir si l'une de ces URL existe ou non.

7
Carson

Vous pouvez faire une liste de chemins à vérifier ...

$page_paths = array(
    'analysis/firstNamelastName',
    'exercise/firstNamelastName'
);

Ensuite, vérifiez s'il existe un objet de page pour chacun des chemins de page.

foreach( $page_paths as $page_path ) {

    echo '<code>' . $page_path . '</code> ' . PHP_EOL;

    if( ! $page = get_page_by_path( $page_path ) ){
        echo 'Does not exist.' . PHP_EOL;
    } else{
        echo 'Exists and resolves to: <code>' . get_permalink( $page->ID ) . '</code>' . PHP_EOL;
    }  

}

Vous pouvez réellement utiliser get_page_by_path(); pour les types de publication autres que page. Voir le troisième paramètre.

7
Michael Ecklund