Ich habe einen Schieberegler mit Wordpress erstellt, die variable Bildanzahl basierend darauf zurückgeben muss, ob das Bild Querformat oder Hochformat ist. Also habe ich Wordpress dazu gebracht, die Bildmaße abzurufen und dann basierend auf der Bildorientierung dem Beitrag eine Klasse zuzuordnen.Slick Slider mit Querformat und Hochformat
Ich habe dann die Klasse verwendet, um alle divs, die im Hochformat sind, in den gleichen Spaltennamen zu paaren, den die Landschaftsbilder haben.
Das Problem, das ich jetzt habe, ist, dass ich mit leeren divs übrig bin. Ich habe den jQuery-Code anderer Leute verwendet und bin mir nicht sicher, ob dies mit der Anzahl der Slick-Schieberegler in Konflikt steht oder ob die Folien möglicherweise erstellt werden, bevor das Skript ausgeführt wird, das die Bilder aufteilt. Wie auch immer, ich würde wirklich einen Einblick in diese Sache zu schätzen wissen. Mein Code ist unten:
\t <div class="slider">
\t \t \t <span>
\t \t \t \t <span class="element half"><?php get_template_part('template-parts/content', 'single'); ?></span>
\t \t \t </span>
<?php /*
* This is just a simple loop to display 7 attachments attached to a post or page in WordPress
* You can change 'medium' and 'thumbnail' to add sizes you have definied in your theme by the add_image_size function
* in WordPress
*/
?>
<?php
\t $thumb_ID = get_post_thumbnail_id($post->ID);
$args = array('post_type' => 'attachment', 'numberposts' => -1, 'post_status' => null, 'post_parent' => $post->ID, 'exclude' => $thumb_ID);
$attachments = get_posts($args);
if ($attachments) {
foreach ($attachments as $attachment) {
$image_attributes = wp_get_attachment_image_src($attachment->ID, 'medium');
\t \t \t $wi = $image_attributes[1];
\t \t \t $he = $image_attributes[2];
\t \t \t if ($wi > $he) \t \t : \t $orient = 'full';
\t \t \t elseif ($wi < $he) \t : \t $orient = 'half';
\t \t \t endif;?>
\t \t \t \t <span>
\t \t \t \t \t <span class="element <?php echo $orient; ?>"><?php echo wp_get_attachment_image( $attachment->ID, 'large'); ?></span> \t \t
\t \t \t \t </span>
<?php }
\t \t } ?>
\t </div>
<script>
jQuery(window).load(function() {
// Convert the NodeList to an Array
\t var pairs = [];
\t jQuery('span.half').each(function(i, div) {
\t var i_over_2 = Math.floor(i/2);
\t if (!pairs[i_over_2]) pairs[i_over_2] = jQuery();
\t pairs[i_over_2] = pairs[i_over_2].add(div);
\t });
\t jQuery.each(pairs, function(i, p) {
\t p.wrapAll("<span class='full'></span>");
\t });
\t \t
});
jQuery(document).ready(function(){
\t jQuery('.slider').slick({
\t arrows: true,
\t infinite: false,
\t speed: 500,
\t fade: true,
\t cssEase: 'linear'
\t });
});
</script>
Die Entwickler-Website kann hier angesehen werden: dev site
Ok, so scheint es, dass, wenn mein JavaScript die beiden Elemente hüllt es einen extra div nach dem Wickel und vor dem Schieber Eingeweihten ausgibt. Irgendwelche Ideen? –