it-swarm.com.de

Inhalte dynamisch füllen über AJAX und Erweiterte benutzerdefinierte Felder

Ich verwende ein Repeater-Feld aus "Erweiterte benutzerdefinierte Felder", um mehrere Fotogalerien zu erstellen. Es gibt 4 Seiten und jede Seite hat mehrere Bildergalerien. Aus diesem Grund möchte ich die Belastung verringern, indem ich eine einzelne externe PHP -Datei verwende, um den Inhalt zu generieren, und AJAX, um jeweils nur eine Galerie zu laden.

Ich bin nicht ganz sicher, wie dies erreicht werden soll, da die ACF-Felder in einer externen Datei definiert werden und nicht weiß, von welcher Seite die Felder abgerufen werden sollen.

Hier ist mein JavaScript bisher:

var passObject = {};

    $.ajax({
        url:"<?php bloginfo('template_directory'); ?>/inc/galleries.php",
        type: 'POST',
        data: passObject,
        success: function(resp) {

            $('#photos').append(resp);

        }
    });

Und hier ist der Inhalt von gallery.php:

<div class="photos">
    <h1>Photo Gallery</h1>
    <?php if( have_rows('gallery') ): ?>

        <?php while( have_rows('gallery') ): the_row(); 

        // vars
        $photo = get_sub_field('photos');

        ?>
            <div class="image"><img src="<?php echo $photo['sizes']['gallery-thumb']; ?>" alt="<?php echo $photo['alt']; ?>" /></div>
        <?php endwhile; ?>

    <?php endif; ?>
</div>
1
APAD1

Folgendes habe ich auf der Grundlage von @ gdaniels Vorschlag getan:

AJAX-Aufruf:

$('.btn').click(function() {
    $.ajax({
        url:"<?php bloginfo('template_directory'); ?>/inc/galleries.php",
        type: 'POST',
        data: {postID: '<?=$post->ID;?>', galleryCategory: $(this).attr("data-content")},
        success: function(resp) {
            $('#photos').append(resp);

        }
    });
});

Und hier ist meine PHP Datei:

<?php 
require('../../../../wp-load.php');
$postid = $_POST['postID'];
$galcat = $_POST['galleryCategory'];
?>
<div class="photos" id="$galcat">
    <h1><?php echo $galcat; ?> Photos</h1>
    <?php if( have_rows($galcat,$postid) ): ?>
        <?php while( have_rows($galcat,$postid) ): the_row(); 

        // vars
        $photo = get_sub_field('photos');

        ?>
            <div class="image"><img src="<?php echo $photo['sizes']['gallery-thumb']; ?>" alt="<?php echo $photo['alt']; ?>" /></div>
        <?php endwhile; ?>

    <?php endif; ?>
</div>
3
APAD1