2017-05-09 11 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 
}