web-dev-qa-db-ja.com

タイトルしかわからない場合のページのIDの取得方法

これと正反対の機能はありますか。

get_the_title(ID) 

私は知っている:

get_the_id()

しかし、それは引数を受け入れないようです。

だから、基本的に、私はのようなものを探しています:

$title = 'Something';
get_the_id($title);

私はすでにこの解決策を知っています:

 global $wpdb;
 $post_name = get_query_var('name');
 $post_id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_name = $post_name");

しかし、私が行方不明になっていることで何か気が付いているのでしょうか。

3
Wordpressor

私はどのようにタイトルを介してそれを取得するのかわからないが、これを使用してスラグを介してそれを取得することができます(これは私の経験ではより便利です)。

http://erikt.tumblr.com/post/278953342/get-a-wordpress-page-id-with-the-slug

ページではなく投稿のスラッグを返したい場合は、単に "$ page"を "$ post"に変更してください。

ガック!

3
Michelle

この目的のために get_page_by_title( $title, [$output = 'object'], [$post_type = 'page'] ) が存在します。私のサイドバーに特定のページのすべての添付ファイルを表示するために、私のプロジェクトの1つでこれを使用しています。

if ( $oPage = get_page_by_title('Proudly Supporting...') ) {

  $children = get_posts(array(
    'post_type'      => 'attachment',
    'post_mime_type' => 'image',
    'numberposts'    => 3,
    'post_status'    => null,
    'post_parent'    => $oPage->ID, /* Using the Page ID */
    'orderby'        => 'Rand',
  ));

  if ( $children ) {
    /* Do something with the children */
  }

}
1
Sampson

私は同じ問題を抱えていました。次のコードを使いました。

$my_title = 'My title';
global $wpdb;
$mypost = $wpdb->get_row( "SELECT * FROM wp_posts WHERE post_title = '" . $my_title . "' " );
echo $mypost->ID;
0
Webars

それを行うための組み込み関数があります。 get_page_by_title();を使用してください。

ここに参照を見なさい http://codex.wordpress.org/Function_Reference/get_page_by_title

0
KeepMove