#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 возвращает: