Wordpress - 如果复选框输出与页面标题相匹配,则显示文本
问题描述:
我想显示已将其复选框标记为品牌的项目(如果它位于品牌页面上)(即页面标题为品牌)。Wordpress - 如果复选框输出与页面标题相匹配,则显示文本
要解释一下代码:
此行显示的所有已选中每个项目的复选框,这样它会输出“品牌”,“网络”,“打印”,如果他们被勾选。
implode(', ',get_field('categories')
这下一行只是检查页面标题是“品牌”:
implode(', ',get_field('categories')
我试图把这些都在if语句哪里会只输出选中的复选框,如果他们匹配标题然后输出它们。
<?php if(implode(', ',get_field('categories')) && $grid_title == "Branding"); {
echo "testing";
}
?>
上面的代码显示了我想要做的事情,但它不起作用。
重要提示:我使用this plugin来创建自定义复选框,请牢记这一点。
=============================
UPDATE: 非常感谢亚当吻解决我所问的问题,小问题更新:
我该如何巧妙地编码 - 使用您的答案,品牌只是复选框的一个例子,还有其他几个像Web,Print,Social等。将那些与页面标题相匹配?
因此,将沿着如果选中字段等于页面标题“品牌”的线路做OR检查字段等于页面标题“网络” OR检查字段等于页面标题“打印”。
答
您正在寻找的功能是in_array
:
<?php
if(
in_array("Branding", get_field('categories'))
&& $grid_title == "Branding"
){
echo "testing";
}
注:这是假定破灭的那结果是数组中包含“品牌”,“网络”等
串编辑:由于我们使用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
}
没错这就是他们出来的,它得到一个错误 - 警告:in_array()函数。 in-array]:第64行的/home/teamwork/public_html/v2/wp-content/themes/default/grid.php中第二个参数的错误数据类型 – Rob 2011-05-19 08:58:06
本身的implode位(即 - )只是输出文字“品牌,网络”和“品牌”。这是正确的,因为有两个项目,第一个品牌和网络检查,第二个品牌检查。只需要让它在数组中工作,因为它显示了上面注释中的错误。 – Rob 2011-05-19 09:37:03
非常感谢,其他几个人已经尝试失败,所以真的很感激!我现在将其作为答案打勾,但我对这个问题稍作更新,我将补充。 – Rob 2011-05-19 09:59:30