Wordpress - Показать текст, если выходные данные флажка соответствуют заголовку страницы - PullRequest
0 голосов
/ 19 мая 2011

Я хочу показать проекты, для которых установлен флажок «Брендинг», если он находится на странице «Брендинг» (т. Е. Заголовок страницы «Брендинг»).

Чтобы объяснить код немного:

В этой строке отображаются все флажки, которые были отмечены для каждого проекта, поэтому он выведет «Брендинг», «Веб», «Печать», если они были отмечены.

implode(', ',get_field('categories')

Эта следующая строка простопроверка заголовка страницы "Брендинг":

implode(', ',get_field('categories')

Я пытаюсь поместить их оба в оператор if, где он просто выведет флажки, и если они соответствуют заголовку, выведите их.

<?php if(implode(', ',get_field('categories')) && $grid_title == "Branding"); {
echo "testing"; 
}
?>

Приведенный выше код показывает, что я хочу сделать, но это не совсем работает.

ВАЖНО: я использую этот плагин для созданияПользовательские флажки, так что имейте это в виду.

============================

ОБНОВЛЕНИЕ: Большое спасибо Адаму Киссу за решение того, что я спросил, небольшое обновление к вопросу:

Как я могу аккуратно написать код - используя yнаш ответ, Брендинг был лишь одним из примеров флажков, есть также несколько других, таких как Web, Print, Social, так как же я могу сопоставить их с заголовком страницы?

Так что это будет по порядкуесли проверенное поле равно заголовку страницы "брендинг", то сделайте ИЛИ проверенное поле равно заголовку страницы "web" ИЛИ проверенное поле равно заголовку страницы "печать".

1 Ответ

0 голосов
/ 19 мая 2011

функция, которую вы ищете: in_array:

<?php
   if(
       in_array("Branding", get_field('categories')) 
       && $grid_title == "Branding"
   ){
     echo "testing";
   }

Примечание: это предполагает, что результатом этого взрыва является массив со строками, такими как "Branding", "Web" и т. Д.

Редактировать : Поскольку мы используем implode(), я предполагаю, что get_field возвращает тип array, поэтому мы убрали имплоз (я немного запутался)

Редактировать : Извините, отсутствовал:]

вы можете использовать array_intersect

Использование:

$categories = get_field('categories');
$cats_iwant = array("Branding", "Print", "Design");

$inarray = array_intersect($categories, $cats_iwant);
//this '$inarray' now has values like 'Branding', 'Design' which are in both arrays

if (count($inarray) > 0) {
  //we have at least one common word ('Branding', ...)
}

//short version
if (count(array_intersect(get_field('categories'),array(
    'Branding', 'Design', 'Print'
   ))) > 0)
{
 //do stuff
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...