web-dev-qa-db-fra.com

Obtenir l'identifiant de la page par titre?

J'utilise le code suivant pour insérer le contenu d'une autre page wp dans ma page d'accueil principale.

Est-il possible de le faire fonctionner avec une page titre au lieu d'un numéro d'identification?

Par exemple. Pas $ page_id = 518 mais $ page_id = 'à propos' à la place ????

$page_id = 518; //Your Page ID
$page_data = get_page( $page_id );
// Displays the title
echo '<h1>'. $page_data->post_title .'</h1>';
// Displays the content
echo apply_filters('the_content', $page_data->post_content);
?>
2
speedypancake

Il y a une fonction exactement pour ça:

get_page_by_title( $page_title, $output = OBJECT, $post_type = 'page' );

Vous pouvez l'utiliser comme ceci:

$page = get_page_by_title( 'Start' );

Pour obtenir la page d'un type de message spécifique:

$custom = get_page_by_title( 'Start', OBJECT, 'your_custom_post_type' );
$post   = get_page_by_title( 'Start', OBJECT, 'post' );

Attention, cette fonction recherchera dans tous statuts. Vous pouvez donc obtenir un brouillon, un message mis à la corbeille ou privé. Vous devriez vérifier le résultat avec:

$status = get_post_status( $page );

if ( 'publish' !== $status )
    return; // do not show unpublished posts

Une fonction associée est get_page_by_path():

$page = get_page_by_path( 'about/contact' );
4
fuxia