在我的page-members.php
我输出类别列表
<?php
$args = array(
\'orderby\' => \'slug\'
);
$categories = get_categories($args);
foreach ($categories as $category) {
echo \'<a href="\' . get_category_link($category->term_id) . \'"><div class="category-block">\' . $category->name . \'</div></a>\';
}
?>
我想点击这些链接,在右侧栏中填入该类别的帖子。
我为这个页面加载了一个js文件;我的functions.php
:
if (is_page()) {
global $post;
if ($post->post_name == \'members\') {
wp_enqueue_script(\'jquery\', get_template_directory_uri() . \'/js/jquery.js\', array(), \'\', true);
wp_enqueue_script(\'blog\', get_template_directory_uri() . \'/js/blog.js\', array(\'jquery\'), \'\', true);
wp_localize_script(\'blog\', \'ajaxposts\', array(
\'ajaxurl\' => admin_url(\'admin-ajax.php\')
));
}
}
我的
blog.js
仅在“成员”页面上正确加载。
我可以放什么blog.js
按类别加载帖子
SO网友:nmr
将类别ID添加到类别列表项<div class="category-block" data-cid="{ID-OF-CAT}">
, 在ajax请求中需要它。您还必须包括action
在请求和显示收到的数据中。
Here 您可以在WP中阅读有关AJAX的更多信息。
博客。js公司
(function($) {
$(document).ready(function() {
var cat_buttons = $(".category-block");
cat_buttons.on( \'click\', function(event){
//
event.preventDefault();
var cid = $(this).data(\'cid\');
$.ajax({
type: "POST",
url: ajaxposts.ajaxurl,
data: {
action: \'my_action_name\',
cat_id: cid // <-- category ID of clicked item / link
}
})
.done( function(data){
// display posts
});
});
});
})(jQuery);
您还需要PHP函数来处理AJAX请求:
功能。php
add_action( \'wp_ajax_my_action_name\', \'ajx_handle_my_action\' );
add_action( \'wp_ajax_nopriv_my_action_name\', \'ajx_handle_my_action\' );
function ajx_handle_my_action() {
$category_id = (int)$_POST[\'cat_id\'];
//
// read category posts
echo json_encode( $result );
wp_die();
}