Consulta de seleção personalizada com tipos de postagem personalizados

Tentaram descobrir o problema com isso durante a última hora, mas bater em uma parede. Basicamente, estou apenas tentando consultar meu tipo de postagem personalizado com base em alguns campos de data personalizados e depois exibir cada um. Alguém tem uma idéia de onde eu estou indo errado?

posts INNER JOIN {$wpdb->postmeta}postmeta m1 ON ( {$wpdb->posts}posts.ID = m1.post_id ) INNER JOIN {$wpdb->postmeta}postmeta m2 ON ( {$wpdb->posts}posts.ID = m2.post_id ) WHERE $wpdb->posts.post_type = 'tf_events' AND $wpdb->posts.post_status = 'publish' AND ( m1.meta_key = 'tf_events_startdate' AND m1.meta_value > $yesterday ) AND ( m2.meta_key = 'tf_events_starttime') ORDER BY m1.meta_key ASC, m2.meta_key ASC LIMIT 30 "; $events = $wpdb->get_results($querystr, OBJECT); if ($events): global $post; foreach ($events as $post): setup_postdata($post); // - variables - $custom = get_post_custom(get_the_ID()); $sd = $custom["tf_events_startdate"][0]; $ed = $custom["tf_events_enddate"][0]; $st = $custom["tf_events_starttime"][0]; $et = $custom["tf_events_endtime"][0]; $post_image_id = get_post_thumbnail_id(get_the_ID()); if ($post_image_id) { $thumbnail = wp_get_attachment_image_src( $post_image_id, 'post-thumbnail', false); if ($thumbnail) (string)$thumbnail = $thumbnail[0]; } // - output - ?> 
Show the goodies

Not Found

Sorry, but you are looking for something that isn't here.

Agradeço antecipadamente 🙂

Solutions Collecting From Web of "Consulta de seleção personalizada com tipos de postagem personalizados"

Eu verificaria a saída de $querystr . Parece que você tem o nome da tabela duas vezes. $wpdb->postmeta resolve algo como wp_postmeta e depois você está postmeta novamente. Isto dá-lhe wp_postmetapostmeta que não é uma tabela válida.

Eu recomendo que você experimente Debug Bar . Isso simplifica muito a debugging de consultas.

Perto desta consulta (por exemplo, se você puder escolher várias meta-chaves – é possível com o pedido):

 $tf_events_query = new WP_Query( array( 'post_type' => 'tf_events' ,'posts_per_page' => '30' // ordered by meta_valu AND date ,'orderby' => 'meta_value date' // or if the meta key value is numeric ordered by num meta value AND date // ,'orderby' => 'meta_value_num date' ,'meta_key' => 'tf_events_startdate' ,'order' => 'ASC' ) ); 

Finalmente consegui, obrigado pela ajuda rapazes …

 < ?php $querystr = " SELECT * FROM $wpdb->posts wposts, $wpdb->postmeta metadate, $wpdb->postmeta metatime WHERE (wposts.ID = metadate.post_id AND wposts.ID = metatime.post_id) AND (metadate.meta_key = 'tf_events_startdate' AND metadate.meta_value > $yesterday ) AND metatime.meta_key = 'tf_events_starttime' AND wposts.post_type = 'tf_events' AND wposts.post_status = 'publish' ORDER BY metadate.meta_value ASC, metatime.meta_value DESC LIMIT 30 "; 

?>