@ali3412
Веб-мастер

Как передать значение переменной прикрепляемой функции Wordpress?

Нужно $product_ids передать функции repeater_dynamic_query().

// The query
$products = new WP_Query( array(
	'post_type'      => array('product'),
	'post_status'    => 'publish',
	'posts_per_page' => -1,
	'tax_query'      => array( 
		array(
			'taxonomy'        => 'pa_aktsiya',
			'field'           => 'slug',
			'terms'           =>  array('spetspredlozheniya'),
			'operator'        => 'IN',
		),
		array(
			'taxonomy'  => 'product_visibility',
			'terms'     => array( 'exclude-from-catalog' ),
			'field'     => 'name',
			'operator'  => 'NOT IN',
		) )
) );

// The Loop
if ( $products->have_posts() ): while ( $products->have_posts() ):
$products->the_post();
$product_ids[] = $products->post->ID;
endwhile;
wp_reset_postdata();
endif;

function repeater_dynamic_query( $query ) {

	if ( $query->query['post_type'][0] == 'product' ) {


		$query->set( 'post__in', $product_ids );
		$query->set( 'no_found_rows', true );
	}
}

add_action( 'pre_get_posts', 'repeater_dynamic_query' );
  • Вопрос задан
  • 49 просмотров
Решения вопроса 1
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
add_action( 'pre_get_posts', 'repeater_dynamic_query' );
function repeater_dynamic_query( $query ) {

	if ( $query->get('post_type') === 'product' ) {

		$tax_query['tax_query'] = array( 
			array(
				'taxonomy' => 'pa_aktsiya',
				'field' => 'slug',
				'terms' =>  array( 'spetspredlozheniya' ),
				'operator' => 'IN',
			),
			array(
				'taxonomy' => 'product_visibility',
				'field' => 'name',
				'terms' => array( 'exclude-from-catalog' ),
				'operator' => 'NOT IN',
			) 
		);

		$query->set( 'tax_query', $tax_query );
		$query->set( 'no_found_rows', true );
		
	}
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы