gpt4 book ai didi

php - Wordpress 使用 ajax 请求 jquery 加载更多帖子 onclick

转载 作者:行者123 更新时间:2023-12-01 07:47:55 25 4
gpt4 key购买 nike

我从头开始使用 _S 入门主题开发了自定义主题。我在单击“阅读更多”按钮时通过 ajax 请求获取 Wordpress 下一篇文章时遇到问题。我尝试过很多文章,特别是以下文章,但没有成功。

引用链接:

我尝试过使用上面的自定义循环并使用 jquery 脚本添加自定义函数,但它不起作用。

下面是循环代码示例:

在index.php中循环

<?php query_posts('showposts=5'); if (have_posts()) : while (have_posts()) : the_post(); ?>

<article class="post-item">
<h2><?php the_title(); ?></h2>
<?php the_excerpt(); ?>
</article>

<?php endwhile; ?>
<?php else : ?>

<h2>Sorry no posts are created yet.</h2>
<p>Please create some posts to see it in action.</p>

<?php endif; wp_reset_query(); ?>

<button class="load-more-btn">Load More</button>

我已经解决这个问题超过 4-5 天了,因此任何人都可以通过有效的解决方案帮助我解决这个问题,我将非常感激。

提前致谢。

最佳答案

我也许有一个适合你的解决方案。

首先确保您的主题中有一个脚本排队

wp_enqueue_script('your_js_hanlde', get_template_directory_uri() . '/js/your_js_hanlde.js', array('jquery'), '1.0.0', true );

然后本地化添加一个函数来在你的dom中添加一个js var

wp_localize_script('your_js_hanlde', 'ajaxurl', admin_url( 'admin-ajax.php' ) );

在您的 js 中,添加“加载更多”按钮上的“单击”事件

传递一个操作名称和 dom 中的文章数量,响应在按钮“加载更多”之前添加内容

$("#load_more").click(function()
{
$.post(ajaxurl,
{
'action': 'your_load_more',
'count': $("article.post-item").length
},
function(response)
{
var posts = JSON.parse(response);

for( var i = 0; i < posts.length; i++ )
{
if( posts[i] == "0" )
$("#load_more").fadeOut();
else
$("#load_more").before(posts[i]);
}

});
});

在functions.php中创建一个函数

function your_load_more()
{
$count = $_POST["count"];

$cpt = 1;

$args = array(
'posts_per_page' => -1,
'post_type' => 'post', // change the post type if you use a custom post type
'post_status' => 'publish',
);

$articles = new WP_Query( $args );

$ar_posts = array();

if( $articles->have_posts() )
{
while( $articles->have_posts() )
{
$articles->the_post();

$one_post = "";

if( $cpt > $count && $cpt < $count+6 )
{
$one_post .= "<article id='" . get_the_id() . "' class='post-item'>";
$one_post .= "<h3>" . get_the_title() . "</h3>";
$one_post .= "</article>";

$ar_posts[] = $one_post;

if( $cpt == $articles->found_posts )
$ar_posts[] = "0";
}
$cpt++;
}
}
echo json_encode($ar_posts);
die();
}
add_action( 'wp_ajax_your_load_more', 'your_load_more' );
add_action( 'wp_ajax_nopriv_your_load_more', 'your_load_more' );

这对我有用。希望对您有所帮助。

关于php - Wordpress 使用 ajax 请求 jquery 加载更多帖子 onclick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33999193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com