2017-06-20 1 views
0

Hallo, ich muss Ergebnis des Post-Typs nach Kategorie ID abrufen und Titel mit ähnlichen Operator.Listen Sie benutzerdefinierte Beitragstyp von benutzerdefinierten Taxonomie-ID und Filter von Array auf Post-ID

Zum Beispiel

Category name : Sports 
Post name : Basketball , hockey , volley ball 

Von unten Abfrage bekomme ich Post Name und seine ID und ich übergeben sie an die get Post Abfrage aber die Abfrage alle Posten innerhalb dieser Kategorie

Für Angenommen, ich suche Für Volleyball innerhalb dieser Kategorie bekomme ich alle Ergebnisse, ich brauche nur den Volleyball in der Ausgabe.

unter

Mein Code anzeigen

$ mypostids_title = $ wpdb-> get_col ("ID wählen Sie aus $ wpdb-> Beiträge wo POST_TITLE like '% $ title%'");

$args_sby= array(
    'post_type'  => 'campaign', 
    'post_status' => 'publish', 
    'posts_per_page' => -1,  
    'post__in' => $mypostids_title, 
     'tax_query' => array(
      array(
      'taxonomy' => 'campaign_category', 
      'field' => 'term_id',      
      'terms' => $_GET['c'], 
      'operator' => 'AND',     
      ) 
     ), 

    ); 
$posts = get_posts($args_sby); 

ich Reihe von Post-ID aus der obigen SELECT-Abfrage erhalten und ich gebe ihnen in dem Post-Abfrage Argument bekommen, und ich nur durch Taxonomie erhalten führen, aber ich brauche, sowie die Post-ID von Taxonomie zu erhalten führen, Bitte lassen Sie mich wissen, wie Sie das lösen können. Vielen Dank im Voraus.

+0

In $ _GET ['c'] Variable, was Sie bekommen? Term ID oder Term Slug? –

Antwort

1
$custom_terms = get_terms('custom_taxonomy'); 

foreach($custom_terms as $custom_term) { 
    wp_reset_query(); 
    $args = array('post_type' => 'custom_post_type', 
     'tax_query' => array(
      array(
       'taxonomy' => 'custom_taxonomy', 
       'field' => 'slug', 
       'terms' => $custom_term->slug, 
      ), 
     ), 
    ); 

    $loop = new WP_Query($args); 
    if($loop->have_posts()) { 
     echo '<h2>'.$custom_term->name.'</h2>'; 

     while($loop->have_posts()) : $loop->the_post(); 
      echo '<a href="'.get_permalink().'">'.get_the_title().'</a><br>'; 
     endwhile; 
    } 

Sie diesen Code

+0

Hallo danke für die Antwort, aber die oben genannten werden alle Beiträge innerhalb dieser Kategorie zurückgeben, ich muss bestimmte Reihe von Beitrag innerhalb dieser Kategorie zu bekommen. Wie Beitrag Titel mit Namen Volleyball innerhalb der Kategorie Sport – ManoharSingh

+1

können Sie dies versuchen –

1

Versuchen Code unten versuchen kann, könnte es hilfreich sein. Sie können Ihr Such-Keyword und Ihre Kategorie direkt in query_posts übergeben.

$args_sby= array(
    'post_type'  => 'campaign', 
    'post_status' => 'publish', 
    'posts_per_page' => -1,  
    's' => $keywords, 
    'taxonomy' => 'campaign_category', 
    'term' => 'yourterm' 
    ); 
$posts = query_posts($args_sby); 

Suche Parameter bezogen Hilfe here

1

this.It könnten versuchen, hilft Ihnen.

$args_sby= array(
    'post_type'  => 'campaign', 
    'post_status' => 'publish', 
    'posts_per_page' => -1, 
    'post_title'  => $title, 
    'tax_query' => array(
     array(
      'taxonomy' => 'campaign_category', 
      'field' => 'term_slug', 
      'terms' => $_GET['c'], 
      'operator' => 'AND', 
     ) 
    ), 
); 
$posts = get_posts($args_sby); 

Danach fügen Sie bitte den untenstehenden Code in die Datei function.php Ihres Themes ein.

//Filter for post title. 
function title_filter($where, &$wp_query){ 
    global $wpdb; 
    if ($search_term = $wp_query->get('post_title')) { 
     $where .= ' AND ' . $wpdb->posts . '.post_title LIKE \'%' . $wpdb->esc_like($search_term) . '%\''; 
    }  
    return $where; 
} 

add_filter('posts_where', 'title_filter', 10, 2); 
Verwandte Themen