Cercare un post dal meta data in WordPress

← ritorno a WordPress

Torna la pagina e le pagine del metadata cercato

 /** 
  * Torna la pagina e le pagine del metadata cercato 
  * @global type $wpdb
  * @param string $meta_name il nome del metafield
  * @param string|array $meta_value il valore o i valori cda filtrare
  * @param boolean $single di default false, TRUE per tornare un singolo post
  * @return array[post] | array[ array[post] ]
  */
public function get_page_from_meta( $meta_name, $meta_value, $single = false ) {
  global $wpdb;
  $table = $wpdb->prefix . 'posts';
  $meta_query_args = array( array(
        'key'     => $meta_name,
        'value'   => $meta_value,
        'compare' => 'IN'
     ) );
  $meta_query = new WP_Meta_Query( $meta_query_args );
  $mq_sql = $meta_query->get_sql( 'post', $table, 'id', null );
  $prepared = "SELECT * FROM $table ".$mq_sql['join'].' WHERE post_type = "page" AND post_status = "publish" '.$mq_sql['where'];
  return $single ? $wpdb->get_row( $prepared, ARRAY_A ) : $wpdb->get_results( $prepared, ARRAY_A );
}