@Alex-Broudy

Как на странице wordpress с определенным ID страницы вывести список страниц с произвольным полем, значение которого равно ID текущей страницы?

Приветствую!

Есть такая структура страниц:

Родитель: Кредитные карты
Страницы: Карта №1, Карта №2, Карта №3 и т.д.

Есть страницы банков, например Банк №1 имеет ID страницы = 124, а некоторые кредитные карты из списка имеют произвольное поле, значение которого равно ID данного банка и на странице данного банка нужно вывести список этих карт.
В шаблоне страницы банка есть такой код:

<?php 
	$nomer = get_the_ID();
	$args = array(
		'post_type'    => 'page',
		'meta_query' => array(
			array(
			'key' => 'bank_id', 
			'value' => $nomer, 
		)
		), 
		); 
		$pages = get_pages( $args );
			foreach( $pages as $post ){
				setup_postdata( $post );
				?> 
					<div><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></div>
				<?php 
					}  
		wp_reset_postdata();
						
?>


цель, нужно получить ID страницы банка на которой находимся, и вывести список карт с произвольным полем, соответствующему ID определенной страницы.

Но ничего не выходит, - выводится список всех возможных страниц сайта.
Подскажите, что делаю не так, почему не получается?
  • Вопрос задан
  • 299 просмотров
Решения вопроса 1
@Alex-Broudy Автор вопроса
Нашел решение здесь:

<?php 
$nomer = get_the_ID(); // Определяем ID страницы на которой находимся
// Задаем параметры цикла:
$args = array(
  'numberposts'	=> -1,
  'post_type'		=> 'page',
  'meta_key'		=> 'bank_id',
  'meta_value'	=> $nomer
);

// С помощью WP_Query создаем переменную, содержащую все страницы со значением ЗАО в поле округ
$the_query = new WP_Query( $args );

?>

<?php if( $the_query->have_posts() ): ?>
  <?php while( $the_query->have_posts() ) : $the_query->the_post(); ?>
    <div><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></div>
  <?php endwhile; ?>
<?php endif; ?>

<?php wp_reset_query();	 // Возвращаем в норму все глобальные переменные ?>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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