J'essaie d'obtenir le contenu de la page quand je ne connais que la chaîne slug.
Y at-il une fonction pour cela, ou un moyen facile de faire cela ou est-ce un cas de le faire via SQL?
Merci beaucoup
Utilisez get_posts()
et le paramètre name
qui est le slug:
$page = get_posts( array( 'name' => 'your-slug' ) );
if ( $page )
{
echo $page[0]->post_content;
}
Sachez que la publication de type get_posts()
est 'post'
par défaut. Si vous voulez un page use…
$page = get_posts(
array(
'name' => 'your-slug',
'post_type' => 'page'
)
);
Si vous voulez all public, les types de publication (à l'exception des pièces jointes) définissent l'argument de type de publication sur 'any'
. Vous pouvez alors obtenir plusieurs résultats, car les slugs ne sont pas uniques parmi les différents types de publication.
Lire sur balises conditionnelles :is_page()
prend également la limace comme argument.
Par conséquent,
if( is_page( 'your-slug' ) ) {
// fetch content
}
fera ce que vous voulez.
Si vous souhaitez savoir comment récupérer le contenu d'un article/d'une page à partir d'un slug lorsque not sur cette page, vous pouvez également alimenter get_posts
un slug. Ceci n'est pas documenté dans le codex.
Ce qui suit va chercher l'id d'un slug:
$args = array(
'name' => 'your-slug'
);
$posts_from_slug = get_posts( $args );
// echo fetched content
echo $posts_from_slug[0]->post_content;
Vous pouvez obtenir une page par son titre en utilisant get_page_by_title()
function.
Vous pouvez l'utiliser comme ceci (en supposant que vous vouliez afficher le contenu):
$page = get_page_by_title('Your Title');
$content = apply_filters('the_content', $page->post_content);
echo $content;
BTW, pour obtenir une page à l’aide de slug:
function get_page_id_by_slug($slug){
global $wpdb;
$id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_name = '".$slug."'AND post_type = 'page'");
return $id;
}
$page = get_post(get_page_id_by_slug('my-slug'));
Utilisez get_page_by_path
.
Syntaxe
<?php get_page_by_path( $page_path, $output, $post_type ); ?>
Exemple:
//Returns the animal with the slug 'cat'
get_page_by_path('cat', OBJECT, 'animal');
pour plus de refernce voir Référence des fonctions WordPress
J'utilise ce code pour remplir un modèle de thème à partir d'une page,
$about = get_page_by_path('about');
$content = apply_filters( 'the_content', $about->post_content );
echo $content;