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 
} 
+0

没错这就是他们出来的,它得到一个错误 - 警告:in_array()函数。 in-array]:第64行的/home/teamwork/public_html/v2/wp-content/themes/default/grid.php中第二个参数的错误数据类型 – Rob 2011-05-19 08:58:06

+0

本身的implode位(即 - )只是输出文字“品牌,网络”和“品牌”。这是正确的,因为有两个项目,第一个品牌和网络检查,第二个品牌检查。只需要让它在数组中工作,因为它显示了上面注释中的错误。 – Rob 2011-05-19 09:37:03

+0

非常感谢,其他几个人已经尝试失败,所以真的很感激!我现在将其作为答案打勾,但我对这个问题稍作更新,我将补充。 – Rob 2011-05-19 09:59:30