2016-11-08 5 views
1

私はスライドショーと高度なカスタムフィールドのためにイージングスライダープロを使用してカスタムページレイアウトを作成しています。なぜACF &イージングPHPは、スライダ自体ではなく、ページに挿入したいスライダのID番号を出力するのかわかりません。柔軟なACF phpをイージングスライダーに挿入する

同じ問題がありますが、柔軟なコンテンツフィールドではなく、通常のACF用です:Wordpress PHP within PHP - また、推奨されるES出力コードは、スライダー159のように少し変わっています:

<?php if (function_exists('easingslider')) { easingslider(159); } ?> 

はここで写真やテキストの正常に動作します私のコード、です:

<?php while(the_flexible_field('flex_field')): ?> 
    <?php if(get_row_layout() == 'photo'): ?> 
     <div class="col-md-6"> 
     <h2>Photos</h2> 
<img src='<?php the_sub_field('photo-stack_image'); ?>' class="img-responsive" /> 
     <BR><BR> 
<img src='<?php the_sub_field('photo-stack_image2'); ?>' class="img-responsive" /> 
    </div> 

<?php elseif(get_row_layout() == 'text'): ?> 
    <div class="col-md-6"> 
     <h2>Texts</h2> 
     <?php the_sub_field('text_field');?> 
    </div> 

<?php elseif(get_row_layout() == 'slider'): ?> 
    <div class="col-md-6"> 
     <h2>Sliders</h2> 
      <?php if (function_exists('easingslider')) 
      { easingslider(the_sub_field('easing_slider_shortcode')); } ?> 
    </div> 
<?php endif; ?> 
<?php endwhile; ?> 

私はget_sub_fieldでthe_sub_field切り替え試みたが、それはIDさえ出力しません。私はPHPには新しく、単純なことを忘れてしまったことに驚くことはありませんが、何ですか?前もって感謝します!

更新日:ありがとうございました!あなたの提案によれば、私はES機能をテストしたところ、「echo get_sub_field( 'easing_slider_shortcode')」と「print_r(get_sub_field( 'easing_slider_shortcode'))」の両方がスライダーのID番号だけを返していることがわかりました。追加コードはありません。私はフレックスフィールド、フィールド、サブフィールドの名前を二重にチェックしており、すべて正しいです。

問題の原因を示唆しているのかどうかわかりませんが、ACFの管理サイドのプリペンドと追加機能を使ってPHPコードをES ID番号に追加しましたが、ページ。

更新2つその2回目の試行はトリックでした - ホーボーに感謝!誰もが将来的にこの問題を持っている場合はここに私の最終的なコードがあります:

<div class="col-md-6"> 
    <?php elseif(get_row_layout() == 'slider'): ?> 
    <?php if (function_exists('easingslider')) { 
     $slider_id = (int) get_sub_field('easing_slider_shortcode'); 
    easingslider($slider_id); 
} ?> 

+0

追加情報に基づいて回答を更新しました。私が言ったように、なぜうまくいかないのか混乱していますが、試してみるべきことがいくつかあります。それらがうまくいかず、あなたのPHPログに何もないなら、私たちに知らせてください。明日は時間があるかもしれません(朝は24時間です)、プラグインをダウンロードして見ることができます。 Easing SliderとEasing Slider Proの間にあまり差がないことを願っています。 – Hobo

答えて

0

まず、get_sub_field()はあなたが望むものをほぼ確実です。 はすぐに値を出力します。別の機能で値を使用する場合は、get_sub_field()を使用してください。

問題がeasingslider()関数またはget_sub_field()によって返された値であるかどうかをデバッグする必要があります。

例えば

、ちょうどそれが返す値とACFの機能を置き換える、 easingslider()機能を確認するには
<div class="col-md-6"> 
    <h2>Sliders</h2> 
    <?php if (function_exists('easingslider')) 
     { easingslider(159); } ?> 
</div> 

それがOKに見える場合は、get_sub_field()によって返される値に問題のを知っています。正しく表示されない場合は、正しいIDを使用していることを確認してください。

get_sub_field()で返された値で問題が発生したと仮定すると、それは整数を返すだけで、余分なHTMLで囲まれた整数ではないことを確認したいと思うでしょう(_shortcodeという部分が私を心配しています) 。したがって、この時間は、ちょうどそして、生成されたページのソース(Chromeで例えばCtrl-U)を表示し、#記号の間に何があるかを見てみましょう例えば

<div class="col-md-6"> 
    <h2>Sliders</h2> 
    #<?php echo get_sub_field('easing_slider_shortcode'); ?># 
</div> 

easingslider()機能を呼び出さずに返される値をエコー。ID以外のものがある場合は、フィールド定義をチェックして、それが数字だけであることを確認します。何もない場合は、

<div class="col-md-6"> 
    <h2>Sliders</h2> 
    #<?php print_r(get_sub_field('easing_slider_shortcode')); ?># 
</div> 

を入力してください。これにより、PHPの保存に関する詳細が表示されます。 the print_r documentationを参照してください。

まだ何もない場合は、正しいフィールド名を確認してください。

このプロセスが問題を見つけるのに役立たない場合は、見つけたもので質問を更新してください。あなたの更新のための

更新

感謝。私はなぜそれが機能していないのか少し困惑していますが、試してみるべきことがいくつかあります。私はACFの管理サイドのプリペンドとアペンド機能を使用していないので、エコーされた値の欠如が問題かどうかはわかりません。

まず、PHPログにメッセージやエラーはありますか?存在する場合は、問題のデバッグに役立つ可能性があります。

次に、easingslider()のチェックでは、変数を引数として使用できます。たぶんありますそれがはたらく場合、

<div class="col-md-6"> 
    <h2>Sliders</h2> 
    <?php if (function_exists('easingslider')) { 
     $slider_id = (int) get_sub_field('easing_slider_shortcode'); 
     easingslider($slider_id); 
    } ?> 
</div> 

を試してみてください...

<div class="col-md-6"> 
    <h2>Sliders</h2> 
    <?php if (function_exists('easingslider')) { 
     $slider_id = 159 ; 
     easingslider($slider_id); 
    } ?> 
</div> 

を、なぜそれはないだろう、私は見ることはできませんが、何を持っているが動作していない理由を私は見ることができませんeasingslider()コードのどこかにチェックを入れてください。

+0

私は使用した最終コードで質問を更新しました。ありがとう! – Milo

+0

喜んで助けました。あなたの問題を解決したので私の答えを受け入れてください(それの横のチェックマークを押してください)。 – Hobo

+0

お受け取りいただきありがとうございます! – Hobo