Odpowiedzi:
Użyj get_posts()i parametru, namektóry jest ślimakiem:
$page = get_posts( array( 'name' => 'your-slug' ) );
if ( $page )
{
echo $page[0]->post_content;
}
Pamiętaj, że get_posts()domyślnie typ wpisu to 'post'. Jeśli chcesz stronę, użyj…
$page = get_posts(
array(
'name' => 'your-slug',
'post_type' => 'page'
)
);
Jeśli chcesz, aby wszystkie publiczne typy postów (oprócz załączników) ustaw argument typu posta na 'any'. Wtedy możesz uzyskać więcej niż jeden wynik, ponieważ ślimaki nie są unikalne dla różnych typów postów.
Możesz uzyskać stronę według tytułu za pomocą get_page_by_title()funkcji.
Możesz użyć tego w następujący sposób (zakładając, że chcesz wyświetlić treść):
$page = get_page_by_title('Your Title');
$content = apply_filters('the_content', $page->post_content);
echo $content;
BTW, aby uzyskać stronę za pomocą ślimaka:
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'));
Czytaj o tagach warunkowych : is_page()bierze również ślimak jako argument.
W związku z tym,
if( is_page( 'your-slug' ) ) {
// fetch content
}
zrobi co chcesz.
Jeśli chcesz dowiedzieć się, jak pobrać treść postu / strony na podstawie informacji o ślimaku, gdy nie ma go na tej stronie, możesz również nakarmić get_postsślimaka. Nie jest to udokumentowane w kodeksie.
Następujący pobierze identyfikator z ślimaka:
$args = array(
'name' => 'your-slug'
);
$posts_from_slug = get_posts( $args );
// echo fetched content
echo $posts_from_slug[0]->post_content;
Zastosowanie get_page_by_path.
Składnia
<?php get_page_by_path( $page_path, $output, $post_type ); ?>
Przykład:
//Returns the animal with the slug 'cat'
get_page_by_path('cat', OBJECT, 'animal');
więcej informacji znajdziesz w Opisie funkcji WordPress
Używam tego kodu, gdy zapełniam szablon kompozycji na stronie,
$about = get_page_by_path('about');
$content = apply_filters( 'the_content', $about->post_content );
echo $content;