Conexión en el filtro wp_export para el tipo de publicación personalizada [cerrado]

3

Estoy trabajando con un CPT que tiene 5 taxonomías (etiquetas, no categorías). Estoy intentando usar el filtro wp_export .

El problema que estoy experimentando es cuando el filtro se está ejecutando: parece ejecutarlo contra la tabla wp_posts Y la tabla wp_users .

Entonces, cuando la consulta se ejecuta en la tabla wp_posts ; todo es bueno. Estamos filtrando las publicaciones según la columna post_date ; que existe en esa mesa.

Sin embargo, cuando nuestro mismo filtro TAMBIÉN se ejecuta en la tabla wp_users ; fallamos porque la tabla wp_users no contiene una columna post_date .

Esto es lo que parece hacer WP (según mi experiencia con esto) con nuestro filtro de consulta personalizado:

  1. WP ejecuta nuestro filtro actualizado en la tabla wp_posts . ÉXITO - > Todos los mensajes se enumeran coincidiendo con nuestra consulta.
  2. WP ejecuta nuestro filtro actualizado en la tabla wp_users . FAIL - > La tabla wp_users no contiene una columna post_date .

WP entonces hace lo mismo contra el:
* wp_terms - > FAIL
* wp_postmeta - > FAIL
* wp_comments - > ERROR

Aquí está la consulta (modificada) que estoy ejecutando actualmente, enganchada a wp_export :

function reviews_query( $query ) {
  $args = array( 'start_date' => false, 'end_date' => false );
  if ( $_REQUEST['emember_tickets_start_date'] || $_REQUEST['emember_tickets_end_date'] ) {
      $args['start_date'] = $_REQUEST['emember_tickets_start_date'] ;
      $args['end_date'] = $_REQUEST['emember_tickets_end_date'] ;
  }

  global $wpdb;

  if ($args['start_date'] && $args['end_date']) {
      $start_date = isset($args['start_date']) ? date( 'Y-m-d', strtotime($args['start_date'])) : '';
      $end_date = isset($args['end_date']) ? date( 'Y-m-d', strtotime('+1 month', strtotime($args['end_date']))) : '';
      $query .= $wpdb->prepare( " AND {$wpdb->posts}.post_date BETWEEN %s AND %s", $start_date, $end_date );
  }

  elseif ( $args['start_date'] && !$args['end_date'] )  {
      $start_date = isset($args['start_date']) ? date( 'Y-m-d', strtotime($args['start_date'])) : '';
      $query .= $wpdb->prepare( " AND {$wpdb->posts}.post_date >= %s", $start_date );
  }

  elseif ( $args['end_date'] && !$args['start_date'] ) {
      $end_date = isset($args['end_date']) ? date( 'Y-m-d', strtotime('+1 month', strtotime($args['end_date']))) : '';
      $query .= $wpdb->prepare( " AND {$wpdb->posts}.post_date < %s", $end_date );
  }

  //var_export($query);
  return $query;
}

Mi pregunta ... ¿Es posible evitar que nuestra 'consulta personalizada actualizada' se ejecute en todas estas otras tablas en las que está fallando ... y lo ejecute SOLAMENTE en la tabla wp_posts ?

    
pregunta josh 15.10.2013 - 15:47

0 respuestas

Lea otras preguntas en las etiquetas