Отримайте вміст сторінки за допомогою slug


9

Я намагаюся отримати вміст сторінки, коли я знаю лише рядок "slug".

Чи є для цього функція, чи простий спосіб це зробити чи це у випадку, якщо це зробити через SQL?

Дуже дякую

Відповіді:


30

Використання 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'. Тоді ви можете отримати більше, ніж один результат, оскільки смоли не є унікальними для різних типів постів.


4

Ви можете отримати сторінку за її назвою за допомогою 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'));

4

Якщо на сторінці з відповідним слизом

Читання на умовних тегах :
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;

2

Використовуйте 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;
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.