WP

2016-09-28 10 views
0

ためのPHPにおける記述のうち、私は関数を実行する必要がある場合は2を結合する方法は、特定のフィールド値を持って行い、特定のページではないあるページ場合(モーダルを見せます)。また、ページにフィールド値がありませんであり、特定のページではない場合は、作業する必要があります。彼らは、このように個別に動作します:WP

//ページがフィールドの値を持つ場合:フィールドは値ではない持っている場合、それは(get_template_part)を示しているように、私は2つを組み合わせるにはどうすればよい

<?php 
    $values = get_field('recast_video'); 
    if (($values)) { 
     get_template_part('template-parts/popIn', 'none'); 
    } 
?> 

//if it is this page, do not show: 

<?php 
if ((!is_page('trading-education-webinars'))){ 
    get_template_part('template-parts/popIn', 'none'); 
} 
?> 

指定されたページ

//this fails 

<?php 
    $values = get_field('recast_video'); 
    if (($values) || (!is_page('trading-education-webinars'))){ 
     get_template_part('template-parts/popIn', 'none'); 
    } 
?> 
+0

また、そうではありません。 – j08691

+0

変更|| $ valueが真で指定されたページではない場合にのみ動作するifステートメント –

答えて

1

最初に行うべきことは共通条件を探すことです。どんなものであれ、それを特定のページにしたくないのではないでしょうか?

$result = (!is_page('trading-education-webinars')) ? : ; 

またページは、フィールドの値を持っていないし、それ が特定のページでない場合に動作する必要があります。それは、そのページではありませんように、最初のチェック。

次に、フィールド値を確認するのはなぜですか?私たちがチェックしたページでない限り、必要はありません。

$result = (!is_page('trading-education-webinars')) ? get_template_part('template-parts/popIn', 'none') : return false; 

あなたはページが「貿易・教育・ウェビナー」

EDITされた場合に発生することが好きにreturn false;を変更することができます条件の明確化:

  • ページXが務めれることは決してありません」
  • $ X値を持っていて、$値を持っていれば、内容を表示してください
  • ページXではなく値$を持っていれば他の内容を表示してください

$値= get_field( 'recast_video');

$x = get_template_part('template-parts/popIn', 'none'); 

$y = 'some other content'; 

$return = (!is_page('trading-education-webinars')) ? (($values) ? $x; : $y) : return false); 
+0

私の仕様では間違っていたと思います、申し訳ありません。フィールド値を持つ他のページがあり、内容を表示する必要があります。ページが「トレーディング教育 - ウェブセミナー」ではなく、フィールド値を持たない場合は、コンテンツを表示しないでください。 –

+0

'trading-education-webinars'にコンテンツが表示されることはありますか? – Spartacus

+0

いいえ、決して。それぞれが独自に正しく評価しますが、最初の部分が失敗した場合に結合すると、2番目の部分 - 「短絡」は評価されません。これは、ビット単位のAndが動作する場所ですか? –

1

は& &(AND)演算子を使用します。

<?php 
    $values = get_field('recast_video'); 
    if (($values && !is_page('trading-education-webinars')) || (!$values && is_page('trading-education-webinars'))){ 
     get_template_part('template-parts/popIn', 'none'); 
    } 
?> 

||演算子は、少なくとも1つまたは両方のステートメントが真である場合にtrueです。

+0

に&&? $ valuesがfalseであり、指定されたページではない場合にも動作しますか? –

+0

いいえ、それはしません。両方のオペランドが真であるとき、 '&&'の結果は真です。 –

+0

最初のオプション、BOTH statemetsがtrueの場合、結果はtrue – Marcin