通过AJAX和高级定制字段动态填充内容

时间:2014-07-29 作者:APAD1

我正在使用高级自定义字段中的repeater字段创建多个照片库。共有4页,每页有多个图像库。因此,我希望通过使用单个外部PHP文件生成内容和AJAX一次只加载一个库来减少负载。

我不太确定如何做到这一点,因为ACF字段是在外部文件中定义的,它不知道从哪个页面获取字段。

以下是我的JavaScript:

var passObject = {};

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

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

        }
    });
这是画廊的内容。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 个回复
最合适的回答,由SO网友:APAD1 整理而成

以下是我根据@gdaniel的建议最终做的事情:

AJAX调用:

$(\'.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);

        }
    });
});
这是我的PHP文件:

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

结束

相关推荐

将所有wp_Options发送到javascript文件会有危险吗?

我注意到wordpress允许我通过wp\\u localize\\u脚本将wordpress选项发送到javascript:wp_localize_script( $this->plugin_slug . \'-plugin-script\', \'wp_options\', wp_load_alloptions() ); 这样,我的javascript就可以访问不同的设置,例如一周从哪一天开始,以及用户选择的日期格式。是否存在任何风险,将所有选项作为变量发送给js,或者这样可以吗?我注

通过AJAX和高级定制字段动态填充内容 - 小码农CODE - 行之有效找到问题解决它

通过AJAX和高级定制字段动态填充内容

时间:2014-07-29 作者:APAD1

我正在使用高级自定义字段中的repeater字段创建多个照片库。共有4页,每页有多个图像库。因此,我希望通过使用单个外部PHP文件生成内容和AJAX一次只加载一个库来减少负载。

我不太确定如何做到这一点,因为ACF字段是在外部文件中定义的,它不知道从哪个页面获取字段。

以下是我的JavaScript:

var passObject = {};

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

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

        }
    });
这是画廊的内容。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 个回复
最合适的回答,由SO网友:APAD1 整理而成

以下是我根据@gdaniel的建议最终做的事情:

AJAX调用:

$(\'.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);

        }
    });
});
这是我的PHP文件:

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

相关推荐

WordPress AJAX错误400向远程站点发送数据的错误请求

我正在使用发件人。net获取电子邮件订阅列表。这个网站给了我一些信息,可以将用户的电子邮件添加到订阅列表中。我想使用WordPress ajax来实现这一点。但它返回错误400错误请求。我的代码是:文件ajax新闻脚本。js公司: jQuery(document).ready(function($){ // Perform AJAX send news on form submit $(\'form#fnews\').on(\'submit\', funct