Actuellement, la production d'un plugin Wordpress qui permet plusieurs curseurs d'image. Pour le moment, pour m'assurer que le code est valide, je dois charger chaque style dynamique des curseurs dans les tags. C'est bien, mais il charge le style pour tous les curseurs, ce qui peut vraiment commencer à ajouter beaucoup de code à la source des pages si les utilisateurs utilisent de nombreux curseurs d'image.Aide pour la boucle foreach PHP
Donc j'essaye d'obtenir que le style soit seulement ajouté aux étiquettes si le curseur est réellement affiché sur la page. Est-ce possible? Voici comment je suis en train d'afficher le style:
function test() {
global $wpdb;
$table_name = $wpdb->prefix . "premiumslider";
$number = $wpdb->get_results("SELECT * FROM $table_name");
foreach ($number as $slider) { ?>
<style type="text/css"><?php if($slider->paginationstyle == 'icons') { ?>
#lofslidecontent<?php echo $slider->id; ?> .lof-navigator li{<?php if($slider- >paginationstyle=='icons'){ ?>background: url(<?php if($slider->paginationoff=='') echo WP_PLUGIN_URL.'/premium-slider/images/pagination.png'; if($slider->paginationoff!='') echo $slider->paginationoff; ?>) 0 0 no-repeat;<?php } ?>}
#lofslidecontent<?php echo $slider->id; ?> .lof-navigator li.active{<?php if($slider->paginationstyle=='icons'){ ?>background: url(<?php if($slider->paginationon=='') echo WP_PLUGIN_URL.'/premium-slider/images/pagination_current.png'; if($slider->paginationon!='') echo $slider->paginationon; ?>) 0 0 no-repeat;<?php } ?>}
<?php } ?>
<?php if($slider->paginationstyle == 'images') { ?>
#lofslidecontent<?php echo $slider->id; ?> .lof-navigator { margin-top: 50px; }
#lofslidecontent<?php echo $slider->id; ?> .lof-navigator li img { border: <?php echo $slider->imgborder; ?>px solid #<?php echo $slider->imgcolour; ?>; }
#lofslidecontent<?php echo $slider->id; ?> .lof-navigator li.active img { border: <?php echo $slider->imgborder; ?>px solid #<?php echo $slider->imghover; ?>; }
#lofslidecontent<?php echo $slider->id; ?> .lof-navigator li.active img:hover { border: <?php echo $slider->imgborder; ?>px solid #<?php echo $slider->imghover; ?>; }
<?php } ?></style><?php
}
}
Comment puis-je y parvenir?
Pour afficher le code ci-dessus j'utilise:
add_action('wp_head','test');
Et pour afficher le curseur ($ id étant l'identifiant de ce curseur particulier, 1, 2, 3, etc.):
premium_slider($id);
Le $ wpdb global que vous voyez est en fait destiné à être utilisé comme un global par Wordpress. – neopickaze
Il peut être passé en argument à la place. Wordpress est-il le roi du design? –
La variable globale est nécessaire pour accéder à la base de données, donc pourquoi cela ne fonctionne pas si vous ne l'ajoutez pas; $ wpdb global. Comment pourriez-vous faire défiler les ID pour trouver une correspondance? Je ne pouvais pas le comprendre moi-même parce que vous ne pouvez pas passer un paramètes à la fonction test(); parce que add_action ('wp_head', 'test'); ne leur permet pas - ou alors je suis amené à croire; peut-être que vous pouvez, mais je ne peux pas comprendre comment. –