Проблемы с параметром категории в WordPress get_posts()

#php #wordpress

#php #wordpress

Вопрос:

Я показываю сетку сообщений с помощью функции get_posts() и пытаюсь управлять значением параметра категории из пользовательского поля.

мой код работает, если параметр категории получает значение из функции echo, например:

 $args = array( 
'numberposts' => 6,
'category'         => '<?php echo "25";?>'
,);
  

но этого не происходит, когда я делаю что-то вроде

 $catid = get_field( "id_of_product_category" );
$args = array( 
'numberposts' => 6,
'category'         => '<?php echo $catid;?>'
,);
  

в то же время я могу

 echo $catid;
  

на странице, и она показывает правильное значение, установленное в пользовательском поле.

Почему я не могу заставить его работать, чтобы изменить параметр категории тогда?

Комментарии:

1. Вы пробовали избавиться от кавычки ‘<?php echo $catid;?>’? Это переменная, а не строка.

2. $args = array( 'numberposts' => 6, 'category' => get_field( "id_of_product_category" ) ,);

3. Нет, это так не сработает — синтаксическая ошибка. У вас нет кавычек. Первый пример нормально работает с кавычками. Он просто не помещает значение переменной туда, где в то же время я могу печатать, повторять эту переменную.

4. Вы пробовали обходиться без php и просто использовать echo $ catid? Вы уже используете php, поэтому в них нет необходимости.

5. Мы писали в одно и то же время. код, который вы опубликовали выше, по-прежнему ничего не делает.

Ответ №1:

Я только что понял, что в вашем get_field() отсутствует второй параметр. Если вы не укажете конкретный идентификатор записи, в которой есть поле с таким именем, скорее всего, по умолчанию будет задано значение текущей записи, если оно существует. Итак, вам в основном нужно выполнить цикл через get_posts(), чтобы получить текущее сообщение, которое будет иметь значение, которое вы ищете, а затем выполнить функциональность, которую вы ищете. Было бы полезно раскрыть больше ваших возможностей.

 // Get your custom field from ACF based on field name and the ID of the post
$catid = get_field( "id_of_product_category", $post->ID );

$args = array( 
'numberposts' => 6,
'category'    => $catid
);
  

Комментарии:

1. по-прежнему не работает, по какой-то причине он не вводит туда правильное значение

2. можете ли вы var_dump свои $ args, а затем die(); и покажите мне, что там?

3. var_dump($args); die();

4. Хотя этот фрагмент кода может решить проблему, включение объяснения действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос для читателей в будущем, и эти люди могут не знать причин вашего предложения по коду.

5. var_dump возвращает: