Conectando-se ao filtro wp_export para o tipo de postagem customizado [closed]

3

Estou trabalhando com um CPT que tem 5 taxonomias (tags, não categorias). Eu estou tentando usar o filtro wp_export .

O problema que estou enfrentando é quando o filtro está em execução: parece executá-lo na tabela wp_posts E na tabela wp_users .

Assim, quando a consulta é executada na tabela wp_posts ; tudo está bem. Estamos filtrando as postagens com base na coluna post_date ; que existe nessa tabela.

No entanto, quando nosso mesmo filtro também é executado na tabela wp_users ; falhamos porque a tabela wp_users não contém uma coluna post_date .

Veja o que o WP parece fazer (da minha experiência com isso) com o nosso filtro de consulta personalizada:

  1. O WP está executando nosso filtro atualizado com relação à tabela wp_posts . SUCESSO - > todas as postagens estão listadas de acordo com nossa consulta.
  2. O WP está executando nosso filtro atualizado com relação à tabela wp_users . FALHA - > wp_users table não contém uma coluna post_date .

WP então faz a mesma coisa contra o:
* wp_terms - > FALHA
* wp_postmeta - > FALHA
* wp_comments - > FALHA

Aqui está a consulta (modificada) que estou executando atualmente - conectada 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;
}

Minha pergunta ... É possível manter nossa 'consulta personalizada atualizada' sendo executada em todas essas outras tabelas onde ela está falhando ... e executá-la SOMENTE na tabela wp_posts ?

    
por josh 15.10.2013 / 15:47

0 respostas