Wp custom fields search y custom post_type

Si vuestro tema utiliza custom post_types, el plugin de busqueda en los custom fields no funcionará correctamente, para solucionar este problema nos basta con remplazar una palabra dentro del archivo extra_search_fields.php del plugin.

En concreto, si nuestro post type se llama CUSTOM_POST_NAME buscaremos la siguiente función:


function sql_restrict($where){
  if($this->isPosted()){
    global $wpdb;
    /** This could possibly be considered invasive, need to think this bit through
    * properly.
    */
    $where = preg_replace("_AND\s*\(ID\s*=\s*'\d+'\)_","",$where);
    $where = preg_replace("/AND $wpdb->posts.post_type = '(post|page)'/","",$where);
    $where.= " AND ($wpdb->posts.post_type='post')";
    foreach($this->getInputs($_REQUEST['widget_number']) as $input){
      $where = $input->sql_restrict($where);
    }
  }
  return $where;
}

y remplazaremos esta linea:

$where.= ” AND ($wpdb->posts.post_type=’post’)”;

por esta:

$where.= ” AND ($wpdb->posts.post_type=’CUSTOM_POST_NAME’)”;

NB: Y ya está! Todo debería de funcionar correctamente! Lo único que hay que recordar es que en nuestras queries tenemos que añadir el campo “post_type=CUSTOM_POST_NAME”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>