0

ブランディング ページ (つまり、ページ タイトルがブランディング) にある場合、ブランディングとしてチェックボックスがオンになっているプロジェクトを表示したいと考えています。

コードを少し説明するには:

この行は、各プロジェクトでチェックされているすべてのチェックボックスを示しているため、チェックされている場合は「ブランディング」、「Web」、「印刷」が出力されます。

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

この次の行は、ページのタイトルが「Branding」であることを確認しています。

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

これらの両方をifステートメントに入れようとしています。ここでは、チェックボックスを出力するだけで、タイトルと一致する場合はそれらを出力します。

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

上記のコードは私がやりたいことを示していますが、うまくいきません。

重要:このプラグインを使用してカスタム チェックボックスを作成しているので、その点にご注意ください。

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

更新: 私が尋ねたことを解決してくれたAdam Kissに感謝します。質問への小さな更新:

これをきちんとコーディングするにはどうすればよいですか - あなたの答えを使用すると、ブランディングはチェックボックスのほんの一例であり、Web、印刷、ソーシャルなどの他のいくつかのものもあります。どうすればそれらをページタイトルと一致させることができますか?

したがって、チェックされたフィールドがページ タイトル「ブランディング」に等しいか、またはチェックされたフィールドがページ タイトル「web」に等しいか、チェックされたフィールドがページ タイトル「印刷」に等しいかの行に沿って実行されます。

4

1 に答える 1

0

あなたが探している機能は次のin_arrayとおりです。

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

注: これは、内破の結果が「Branding」、「Web」などの文字列を含む配列であることを前提としています。

編集: を使用しているため、 implode()get_field が typearrayを返すと想定しているため、内破を片付けます (しばらく混乱しました)。

編集:申し訳ありませんが、離れていました:]

あなたが使用できる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
}
于 2011-05-19T08:43:48.603 に答える