gpt4 book ai didi

php - Wordpress - 如何通过 AJAX 获取更多帖子?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:55:55 28 4
gpt4 key购买 nike

首先,我认为这是不可能的,但希望有人能提供帮助。

为了解释当前情况,目前我有一个自定义插件可以获取有关用户及其 4 个最新帖子的各种信息。

我也在使用 WPBook 插件(所以这是在 facebook 上,只是一个典型的 wordpress 网站)

好的,下面是我的代码,它为用户抓取 4 个最新帖子:

// The Query
query_posts('posts_per_page=4&author='.$blogger_id);

// set $more to 0 in order to only get the first part of the post
global $more;
$more = 0;

// the Loop
while (have_posts()) : the_post();
?>
<div class="oe-grid-box">
<a href="<?php the_permalink() ?>" <?php the_title()?></a>
<div class="oe-grid-box-content">
<?php echo the_content( '...' ); ?>
</div>
<div class="oe-grid-pic">
<a href="<?php the_permalink() ?>">
<span class="<?php echo strtolower($category); ?>"></span>
</a>
<?php echo $image; ?>
</div>
</div>
<?php
endwhile;

// Reset Query
wp_reset_query();
?>


<div id="load-more">Load More</div>

我尝试按照本教程进行操作,但没有使用单独的插件,而是将代码放在我现有的插件中,但现在我的页面无法加载:

http://www.problogdesign.com/wordpress/load-next-wordpress-posts-with-ajax/

理想情况下,我想要的是在单击加载更多按钮时,再获取 4 个帖子并显示它们。

如果有人能提供帮助,我将不胜感激。

更新

好的,

到目前为止,我已经在我的 jQuery 中添加了调用 php 文件的功能,它应该可以返回帖子,但它不起作用。

我在想是不是不知道WordPress的功能是什么?

如果我在我的加载更多脚本中放置一个简单的echo,jQuery success 函数会显示一个警告说它有效,但是如果我开始做 WordPress 的事情我会得到一个内部服务器错误,这是load-more.php 文件中的代码:

// load wordpress into template
$path = $_SERVER['DOCUMENT_ROOT'];
define('WP_USE_THEMES', false);
require($path .'/wp-load.php');


$blogger_id = $_GET['id'];
$firstname = $_GET['firstname'];
$surname = $_GET['surname'];
$posts = $_GET['posts'] + 4;
$category = $_GET['category'];
$image = $_GET['image'];

// The Query
query_posts('paged='.get_query_var('paged').'&posts_per_page=' . $posts . '&author='.$blogger_id);

// set $more to 0 in order to only get the first part of the post
global $more;
$more = 0;

// then the same loop as in my page that is making the ajax call.

最佳答案

经过一番努力,我找到了答案,这里是卡在同样位置的人的解决方案。

这会进入您的插件页面,您可以在其中获取用户的帖子等。

<script type="text/javascript">
$(document).ready(function() {

posts = 8;
author_posts = parseInt(<?php echo $author_posts; ?>);

$("#link_selector").click(function() {

// alert('posts - ' + posts + 'author posts - ' + author_posts);


if ((posts - author_posts) > 3) {
$("#link_selector").text('No more posts!');
}
else {

var category = '<?php echo strtolower($category); ?>';
var id = '<?php echo $blogger_id; ?>';
var firstname = '<?php echo $firstname; ?>';
var surname = '<?php echo $surname; ?>';


// alert(posts + category + id + firstname + surname);

$.ajax({
type: "GET",
url: "/wordpress/wp-admin/admin-ajax.php",
dataType: 'html',
data: ({ action: 'loadMore', id: id, firstname: firstname, surname: surname, posts: posts, category: category}),
success: function(data){
$('#ajax_results_container').hide().fadeIn('slow').html(data);
posts = posts + 4;

if ((posts - author_posts) > 3) {
$("#link_selector").text('No more posts!');
}

}
});
}

});
});

</script>

然后在您主题的 functions.php 中,放入您的函数来执行您的 ajax 请求:

function loadMore() {

$blogger_id = $_GET['id'];
// get your $_GET variables sorted out

// setup your query to get what you want
query_posts('posts_per_page=' . $posts . '&author='.$blogger_id);

// initialsise your output
$output = '';

// the Loop
while (have_posts()) : the_post();

// define the structure of your posts markup

endwhile;

// Reset Query
wp_reset_query();

die($output);

}

然后,就在你的函数结束后,放入 Action 钩子(Hook)

add_action('wp_ajax_loadMore', 'loadMore');
add_action('wp_ajax_nopriv_loadMore', 'loadMore'); // not really needed

就是这样!

关于php - Wordpress - 如何通过 AJAX 获取更多帖子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11887760/

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