wordpress首页文章加载更多
时间 : 2023-12-29 02:11:02 声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性
最佳答案
要为WordPress首页添加一个加载更多功能,你可以按照以下步骤进行操作。
1. 在主题文件中打开functions.php文件:进入WordPress后台,依次点击"外观" -> "主题编辑",然后在右侧选择functions.php文件。
2. 在functions.php文件中添加以下代码:
```php
function load_more_scripts() {
global $wp_query;
wp_enqueue_script('jquery');
wp_register_script('loadmore', get_stylesheet_directory_uri().'/js/loadmore.js', array('jquery'));
wp_localize_script('loadmore', 'loadmore_params', array(
'ajaxurl' => site_url() . '/wp-admin/admin-ajax.php',
'posts' => json_encode($wp_query->query_vars),
'current_page' => get_query_var('paged') ? get_query_var('paged') : 1,
'max_page' => $wp_query->max_num_pages
));
wp_enqueue_script('loadmore');
}
add_action('wp_enqueue_scripts', 'load_more_scripts');
function load_more_posts() {
$args = json_decode(stripslashes($_POST['query']), true);
$args['paged'] = $_POST['page'] + 1;
$args['post_status'] = 'publish';
query_posts($args);
if(have_posts()):
while(have_posts()): the_post();
get_template_part('content', get_post_format());
endwhile;
endif;
die;
}
add_action('wp_ajax_loadmore', 'load_more_posts');
add_action('wp_ajax_nopriv_loadmore', 'load_more_posts');
3. 创建一个新的JS文件loadmore.js: 在你的主题文件夹下创建一个新的文件夹"js",然后在该文件夹下添加一个新的JS文件loadmore.js。在该文件中添加以下代码:
```javascript
jQuery(function($){
$('#load-more').click(function(){
var button = $(this),
data = {
'action': 'loadmore',
'query': loadmore_params.posts,
'page' : loadmore_params.current_page
};
$.ajax({
url : loadmore_params.ajaxurl,
data : data,
type : 'POST',
beforeSend : function ( xhr ) {
button.text('加载中...');
},
success : function( response ) {
if( response ) {
$('#main-content-container').append( response );
button.text( '加载更多' );
loadmore_params.current_page++;
if ( loadmore_params.current_page == loadmore_params.max_page )
button.remove();
} else {
button.remove();
}
}
});
});
});
4. 在你的主题文件中更新首页模板:在你的主题文件中打开首页模板(通常是index.php)并添加以下代码:
现在你的WordPress首页应该可以加载更多文章了。每当用户点击“加载更多”按钮时,它将通过Ajax请求加载更多的文章并追加到页面上。记得点击保存按钮保存你的更改,并确保你的主题文件夹中有相应的文件夹和文件。
其他答案
要实现WordPress首页文章加载更多功能,可以考虑使用AJAX技术来动态获取更多文章并将其插入到页面中。
以下是一种实现方式的步骤:
1. 首先,在主题的functions.php文件中添加以下代码,以创建一个新的AJAX处理函数来获取更多文章:
function load_more_posts() {
$paged = $_POST['paged'];
$args = array(
'post_type' => 'post',
'posts_per_page' => 6,
'paged' => $paged
);
$query = new WP_Query($args);
if($query->have_posts()) {
while($query->have_posts()) {
$query->the_post();
// 在这里定义你想要展示的文章内容和格式
}
wp_reset_postdata();
}
die();
}
add_action('wp_ajax_load_more_posts', 'load_more_posts');
add_action('wp_ajax_nopriv_load_more_posts', 'load_more_posts');
2. 在主题的index.php或类似的文件中,添加一个用于展示文章的容器,例如:
<div id="post-container" class="post-container">
<!-- 这里是你的首页文章,初始加载的文章数量 -->
</div>
<div class="load-more-btn-container">
<button id="load-more-btn" class="load-more-btn">加载更多</button>
</div>
3. 接下来,添加以下JavaScript代码到主题的JavaScript文件或在HTML文件中的<script>标签中:
jQuery(document).ready(function($) {
var paged = 2; // 初始加载的文章页码
$('#load-more-btn').on('click', function() {
$.ajax({
url: ajaxurl, // 必须使用ajaxurl全局变量
type: 'post',
data: {
action: 'load_more_posts',
paged: paged
},
success: function(response) {
$('#post-container').append(response);
paged++; // 更新页面计数器
}
});
});
});
4. 最后,在主题的functions.php文件中,添加以下代码来加载JS脚本和一个AjaxURL的全局变量:
function enqueue_scripts() {
wp_enqueue_script('custom-js', get_template_directory_uri() . '/js/custom.js', array('jquery'), '1.0', true);
wp_localize_script('custom-js', 'ajaxurl', admin_url('admin-ajax.php'));
}
add_action('wp_enqueue_scripts', 'enqueue_scripts');
以上步骤完成后,刷新你的网页,你将会看到一个“加载更多”按钮。点击该按钮后,将会使用AJAX技术动态加载更多的文章并插入到页面中。请注意,你需要自行编写HTML和CSS代码来展示你想要的文章内容和格式。
下一篇
宝塔面板怎么安装tomcat
https/SSL证书广告优选IDC>>
推荐主题模板更多>>
推荐文章







