web-dev-qa-db-fra.com

Boucle avec curseur (le curseur ne se charge pas)

Dans mon slider.php, j'ai une boucle qui appelle un type de publication personnalisé. Ce type de message personnalisé a une méta-boîte pour une URL de diapositive (lien/titre/etc.). Je peux voir la boucle et tout le reste fonctionne parce que dans le code source, il affiche l'URL correcte de la boîte méta. Mais il ne chargera pas le curseur. Mais disons que je laisse tomber un chemin direct vers une image EN DEHORS de la boucle, le curseur fonctionnera/se chargera et chargera l'image dynamique à partir de la métabox (comme la deuxième diapositive).

Il semble, et je sais que c'est faux, mais c'est presque comme si l'image de la métabox était en train d'être chargée après le script des diapositives. Donc, il ne verra pas qu'une image existe et n'exécutera pas le code js pour les diapositives.

Ma tête a la fonction Js correcte.

Ma méta-boîte et mon type de message fonctionnent et sont sauvegardés.

Mon modèle de base qui inclut "slider.php". (au dessous de)

<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-->

Mon slider.php qui a

<!-- 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 -->

Le fichier slide.js (les fonctions pour les diapositives) est également en cours de chargement (évidemment) et est en attente dans le pied de page.

Je me déchire le cerveau, et php n'est pas mon point fort. Je sens que je ne peux tout simplement pas comprendre, ou quoi chercher même. Merci d'avance.

Edit - Si vous avez besoin de voir plus de code, faites le moi savoir. Je ne sais pas quoi d'autre pourrait causer le problème.

1
n.stanley

L'explication la plus simple est que le rendu HTML dans votre code ne correspond pas à ce que vous recherchez réellement. Sans voir le JS responsable du curseur, il est impossible de dire où vous vous êtes trompé, mais vous devriez comparer la version simulée (qui fonctionne) avec ce que vous obtenez réellement (source HTML après rendu de la page) pour voir s'il y en avait. des fautes de frappe ou d'autres erreurs potentielles.

Une autre possibilité est que, bien que l'URL de votre image soit correcte, elle présente un caractère étrange. Comme vous le faites dans un attribut HTML, je vous suggère d'exécuter votre instruction echo par désinfection en utilisant esc_attr() :

<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>

Si possible, cela vous dérangerait-il de partager le code du curseur?

1
Justin Bell

Cette ligne ressemble à un problème

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

Peut-être que tu devrais avoir

<?php $slide_img_src = $smc_get_the_slide_img_source; ?>

Puisque $smc_get_the_slide_img_source n'est pas une fonction WordPress, que fait-il?

Cela devrait aller chercher votre méta-boîte, quelque chose comme:

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

Peut-être devriez-vous vous assurer que le connecteur de votre marquage avec curseur doit fonctionner après jquery et après le slide.js

Les priorités doivent être: 1. jQuery 2. Slide.js 3. la connexion du balisage et du script.

Bonne chance! Si vous avez besoin d'aide, tenez-nous au courant!

0
nickast