2017-05-09 9 views
1

以下のコードは、wpdbのタイトル行を見て投稿が存在するかどうかを確認するためのコードです。タイトルとタクソノミーの用語で投稿が存在するかどうかを確認しますか?

function post_exists($title) { 
    global $wpdb; 
    return $wpdb->get_row("SELECT * FROM wp_posts WHERE post_title = '" . $title . "'", 'ARRAY_A'); 
} 

タイトルとタクソノミーの用語で投稿が存在するかどうかを確認するにはどうすればよいですか?
たとえば、カスタムタクソノミー「genres」とタクソノミー用語「horror」があります。私はポストタイトルでポストが存在するかどうか、また「ホラー」という用語をチェックしたい。

私はこれを数日間苦労してきました。あなたが所望の出力を得るために、次に参加する必要があるので

答えて

0

分類と用語はwp_term_taxonomywp_terms テーブルに格納されています。

以下のように機能を変更しました。

function wh_post_exists($title) { 
    global $wpdb; 

    $query = $wpdb->prepare("SELECT posts.ID 
     FROM $wpdb->posts AS posts 
     INNER JOIN $wpdb->term_relationships AS term_relationships ON posts.ID = term_relationships.object_id 
     INNER JOIN $wpdb->term_taxonomy AS term_taxonomy ON term_relationships.term_taxonomy_id = term_taxonomy.term_taxonomy_id 
     INNER JOIN $wpdb->terms AS terms ON term_taxonomy.term_id = terms.term_id 
     WHERE term_taxonomy.taxonomy = 'genres' 
      AND terms.slug = 'horror' 
      AND posts.post_type = 'post' 
      AND posts.post_title = %s", $title); 
    $result = $wpdb->get_row($query, 'ARRAY_A'); 

    //checking error msg 
    if ($wpdb->last_error !== '') { 
     $wpdb->print_error(); 
     die('-- code execution discontinued --'); 
    } 
    if (count($result) > 0) { 
     return TRUE; //exists 
    } else { 
     return FALSE; //does not exists 
    } 
} 

0
$result = get_posts(array(
'showposts' => -1, 
'post_type' => 'post', // post Type any even you can use custom post type 
'tax_query' => array(
    array(
    'taxonomy' => 'genres', // Taxonomy name like genres 
    'field' => 'name', 
    'terms' => array('horror')) // Taxonomy term 
), 
'orderby' => 'title', 
'order' => 'ASC')); 

if(!empty($result)){ // Term related Post exist then do code 
} 
関連する問題