我在档案中有两个循环。php,两者都受pre_get_post
.
上的我的代码pre_get_post
这是:
// My pre_get_post
function my_pre_get_posts( $query ) {
if ( is_admin() || ! $query->is_main_query() )
return;
if ( is_post_type_archive( \'propiedad\' ) ) {
//Orderby
$orderby = \'meta_value_num\';
$order = \'ASC\';
$paged = get_query_var(\'paged\');
//Tax query
$tax_query = array();
if( isset($_GET[\'operacion\']) or isset($_GET[\'ambiente\']) or isset($_GET[\'tipo\']) ) {
// Operacion
if( isset($_GET[\'operacion\']) && !empty($_GET[\'operacion\']) ){
$tax_query[] = array (
\'taxonomy\' => \'operacion\',
\'field\' => \'slug\',
\'terms\' => $_GET[\'operacion\'],
);
}
// Ambiente
if( isset($_GET[\'ambiente\']) && !empty($_GET[\'ambiente\']) ){
$tax_query[] = array (
\'taxonomy\' => \'ambiente\',
\'field\' => \'slug\',
\'terms\' => $_GET[\'ambiente\'],
);
}
// Tipo de propiedad
if( isset($_GET[\'tipo\']) && !empty($_GET[\'tipo\']) ){
$terms = $_GET[\'tipo\'];
$tax_query[] = array (
\'taxonomy\' => \'tipo_propiedad\',
\'field\' => \'slug\',
\'terms\' => $terms,
);
}
//Tax relation
$tax_query[\'relation\'] = \'AND\';
}
// Meta query
$meta_query = array();
if( isset($_GET[\'con_precio\']) or isset($_GET[\'min_precio\']) or isset($_GET[\'max_precio\']) ) {
// Con precio
if( isset($_GET[\'con_precio\']) && !empty($_GET[\'con_precio\']) ){
$meta_query[] = array(
\'key\' => \'operacion_mostrar-precio\',
\'value\' => 1,
);
}
// Min y max precio
if( isset($_GET[\'min_precio\']) && !empty($_GET[\'min_precio\']) && isset($_GET[\'max_precio\']) && !empty($_GET[\'max_precio\']) ){
$meta_query[] = array(
\'key\' => \'operacion_precio-ar\',
\'value\' => array( $_GET[\'min_precio\'], $_GET[\'max_precio\'] ),
\'type\' => \'numeric\',
\'compare\' => \'BETWEEN\',
);
}
}
if( isset($_GET[\'order\']) && $_GET[\'order\'] == \'DESC\') {
$order = \'DESC\';
}
//orderby
$query->set( \'paged\', $paged );
$query->set( \'order\', $order );
$query->set( \'orderby\', $orderby );
$query->set( \'meta_key\', \'operacion_precio-ar\' );
//seteo el tax query
$query->set( \'tax_query\', $tax_query );
//seteo el meta query
$query->set( \'meta_query\', $meta_query );
$query->set( \'posts_per_page\', 4 );
//echo \'<pre>\'; print_r($query); die();
return;
}
}
add_action( \'pre_get_posts\', \'my_pre_get_posts\', 1 );
如您所见,有:
$query->set( \'posts_per_page\', 4 );
我需要这个archive.php
对于分页,但我不需要在另一个循环中使用它,因为我想知道过滤了多少结果,并通过所有帖子的自定义字段获取信息,但这只显示了4个,我认为是因为分页影响了它。
所以我需要在另一个循环中设置:$query->set( \'posts_per_page\', -1 )
, 但我不知道怎么做。