Відповіді:
Використання get_posts()
та параметр, name
який є слизом:
$page = get_posts( array( 'name' => 'your-slug' ) );
if ( $page )
{
echo $page[0]->post_content;
}
Майте на увазі, що тип публікації за get_posts()
умовчанням до 'post'
. Якщо ви хочете скористатися сторінкою …
$page = get_posts(
array(
'name' => 'your-slug',
'post_type' => 'page'
)
);
Якщо ви хочете, щоб усі загальнодоступні публікації (крім вкладень) встановили аргумент типу публікації 'any'
. Тоді ви можете отримати більше, ніж один результат, оскільки смоли не є унікальними для різних типів постів.
Ви можете отримати сторінку за її назвою за допомогою get_page_by_title()
функції.
Ви можете використовувати його так (якщо ви хочете показати вміст):
$page = get_page_by_title('Your Title');
$content = apply_filters('the_content', $page->post_content);
echo $content;
BTW, щоб отримати сторінку за допомогою 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'));
Читання на умовних тегах : is_page()
також сприймає слизу як аргумент.
Отже,
if( is_page( 'your-slug' ) ) {
// fetch content
}
зробить те, що ти хочеш.
Якщо вас цікавить, як отримати вміст публікації / сторінки на основі слизу, якщо він не знаходиться на цій сторінці, ви також можете подати get_posts
кулі. Це не зафіксовано в кодексі.
Далі буде отримано ідентифікатор зі слизи:
$args = array(
'name' => 'your-slug'
);
$posts_from_slug = get_posts( $args );
// echo fetched content
echo $posts_from_slug[0]->post_content;
Використовуйте get_page_by_path
.
Синтаксис
<?php get_page_by_path( $page_path, $output, $post_type ); ?>
Приклад:
//Returns the animal with the slug 'cat'
get_page_by_path('cat', OBJECT, 'animal');
Детальнішу інформацію див. у довідці щодо функцій WordPress
Я використовую цей код під час заповнення шаблону теми зі сторінки,
$about = get_page_by_path('about');
$content = apply_filters( 'the_content', $about->post_content );
echo $content;