slugを使用してページコンテンツを取得する


9

スラッグ文字列しかわからないときにページコンテンツを取得しようとしています。

これのための関数、またはこれを行う簡単な方法はありますか、これは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;

ところで、スラッグを使用してページを取得するには:

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ます。これはコーデックスに記載されていません。

以下は、スラッグからIDをフェッチします。

$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;
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.