web-dev-qa-db-ja.com

ページスラッグを使用してページのページIDを取得する方法

私はwordpressにはかなり新しいと私はそれがslugpage idを得ることができるかどうか疑問に思いました。私に知らせてください。

31
freaky

get_page_by_path($page_path)を使う:

$page = get_page_by_path( 'about' );
echo get_the_title( $page );

これは通常の投稿オブジェクトを返します。

42
fuxia

私はこれを使っています..

function get_id_by_slug($page_slug) {
    $page = get_page_by_path($page_slug);
    if ($page) {
        return $page->ID;
    } else {
        return null;
    }
} 

これが誰かに役立つことを願っています。

14
Ibnul Hasan

このフォーラムではすでに質問と回答がなされています。私はそこから同じコードを貼り付けています。この関数を使ってページIDを取得します。

 function get_page_by_slug($page_slug, $output = OBJECT, $post_type = 'page' ) { 
  global $wpdb; 
   $page = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_name = %s AND post_type= %s AND post_status = 'publish'", $page_slug, $post_type ) ); 
     if ( $page ) 
        return get_post($page, $output); 
    return null; 
  }
9
Vikas Bhardwaj

同じページでコードを複数回使用しようとしたときに、選択した答えに問題がありました。それはあらゆる場合に同時に私のページの内容の全てを同時に表示し続けた。そこで私は考えに戻り、 WordPress Codex のドキュメントに基づいたこのもっと簡単なアプローチを思いついた。

<?php $query = new WP_Query( array( 'pagename' => 'about-me' ) );
        while ( $query->have_posts() ) {
        $query->the_post();
        echo '<h2>'. get_the_title() .'</h2>';
        the_content();
    }
    wp_reset_postdata();
?>

多分それはまだそこに誰かのために役立つことができます; D

3
<?php  function get_page_ID_by_slug( $slug ) {
    $page = get_page_by_path( $slug );
    if ( $page ) {
        return (int) $page->ID;
    }
    else {
        return null;
    }
}
?>

この提案が誰かに役立つことを願っています。

0
Dipika

あまりにも複雑に思える、またはページIDを取得する方法を具体的に説明していない、ここにたくさんの答えがあります。

            $page = get_page_by_path("your-page-slug");
            if ($page) {
                $page_id =  $page->ID;
                echo $page_id;
            }

上記の説明では、投稿オブジェクトを$ pageに割り当てました - 投稿オブジェクトが完成したら、ここで説明している情報を入手できます。 https://codex.wordpress.org/Class_Reference/WP_Post

            $page->ID
            $page->post_status
            $page->post_title

そしてもっとたくさん

0
dbmpls