web-dev-qa-db-ja.com

スライダーでループする(スライダーがロードされていない)

私のslider.phpに私はカスタム投稿タイプを要求するループがあります。このカスタム投稿タイプにはスライドURLのメタボックスがあります(link/title/etc)。私はループを見ることができますし、ソースコードではメタボックスからの正しいURLを示しているので、他のすべてはうまくいっています。しかし、それはスライダーをロードしません。しかし、ループの外側の画像への直接パスをドロップすると、スライダーが機能してロードされ、メタボックスから動的画像がロードされます(2番目のスライドとして)。

それは思われる、そして私はこれが間違っていることを知っている、しかしそれはまるでメタボックスからのイメージがスライドのためのスクリプトの後にロードされているかのように。そのため、画像が存在していることがわかりませんし、スライドに対してjsコードが実行されることもありません。

私の頭は正しいjs関数を持っています。

私のメタボックスと投稿の種類は目覚めて保存中です。

'slider.php'を含む私のホームテンプレート。 (以下)

<div id="slides_wrap">
  <div id="slides_frame"> <!-- frame -->
    <div id="slides">

      <?php include 'slider.php'; ?>

      <!-- pagination things -->
    </div>
  </div> <!-- frame -->
</div> <!-- slides wrap & shadow-->

持っている私のslider.php

<!-- start slider -->
<?php $args = array( 'post_type' => 'home_slider', 'posts_per_page' => 10 ); ?>
<?php $loop = new WP_Query( $args ); ?>

<div class="slides_container">
  <?php // query the "slider" custom post type and import its posts into the slider ?>
  <?php while ( $loop->have_posts() ) : $loop->the_post(); ?>

  <?php $slide_img_src = smc_get_the_slide_img_source(); ?>

    <a href="#" title="Dum Slider 1" target="_blank"><img src="<?php echo $slide_img_src; ?>" class="max-image" width="" height="" alt="Slide 1"></a>

  <?php endwhile; ?>

<!-- if i add this below the slider will work and use this image below first (then load the loop???)
<a href="#" title="#" target="_blank"><img src="http://smc-collective.com/okay/images/sliders/dum_slide_2.png" class="max-image" width="" height="" alt="Slide 1"></a> -->

</div>
<!-- end slider -->

Slide.jsファイル(スライド用の関数)も(明らかに)ロード中で、フッターに入れられています。

私は私の脳を悩ませています、そしてphpは私の長所ではありません。私はそれを理解することができないか、何を検索すべきかさえも気にしません。進んでくれてありがとう。

編集 - あなたがこれ以上コードを見る必要があるなら、私に知らせてください。他に何が問題を引き起こしているのか私は知りません。

1
n.stanley

最も簡単な説明は、あなたのコードでレンダリングされたHTMLはあなたが実際に探しているものと一致しないということです。スライダーを担当しているJSを見なくても、どこに問題があるのか​​を判断することはできませんが、モックアップされたバージョン(実際に動作するバージョン)と実際に表示されるもの(ページレンダリング後のHTMLソース)を比較してください。誤字やその他の潜在的な間違い。

別の可能性としては、あなたの画像へのURLは正しいが、そこには奇妙な性質があるということです。 HTML属性内でこれを行っているので、 esc_attr() を使用してサニタイズを通してechoステートメントを実行することをお勧めします。

<a href="#" title="Dum Slider 1" target="_blank"><img src="<?php echo esc_attr($slide_img_src); ?>" class="max-image" width="" height="" alt="Slide 1"></a>

可能であれば、スライダーコードを共有してもいいですか。

1
Justin Bell

この行は問題のように見えます

<?php $slide_img_src = smc_get_the_slide_img_source(); ?>

多分あなたは持っているべきです

<?php $slide_img_src = $smc_get_the_slide_img_source; ?>

$smc_get_the_slide_img_sourceはWordPressの機能ではないので、何をしているのでしょうか。

メタボックスを取得する必要があります。

$smc_get_the_slide_img_source = get_post_meta($post->ID, 'image_field', true);
0
Wyck

たぶんあなたはスライダーとあなたのマークアップのコネクタがjqueryの後とslide.jsの後に走らなければならないことを確実にするべきです

優先順位は次のとおりです。1. jQuery 2. Slide.js 3.マークアップとスクリプトの接続。

がんばろう!あなたが何か助けが必要な場合は、私たちを投稿してください!

0
nickast