我使用WPAlchemy在管理区域中创建了一个类别列表,以下是代码:
<?php
$mb->the_field('s_cat');
$args = array(
'name' => $mb->get_the_name(),
'id' => $mb->get_the_name(),
'selected' => html_entity_decode($mb->get_the_value()),
'class' => 'catlist',
'orderby' => 'ID',
'order' => 'ASC',
'hide_empty' => 0,
'child_of' => 0,
'hierarchical' => 1,
'depth' => 2,
'hide_if_empty' => false );
wp_dropdown_categories( $args );
?>
现在我创建了一个创建帖子列表的函数,以下是代码:
function fn_dropdown_post($cat_id) {
$args=array(
'cat' => $cat_id,
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => -1,
'caller_get_posts'=> 1
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
?>
<select name="menu">
<?php
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<option value="<?php the_ID() ?>"><?php the_title(); ?></option>
<?php
endwhile;
?>
</select>
<?php
}
wp_reset_query();
}
到目前为止工作正常。
我想在选择某个类别时显示帖子列表,我尝试使用不起作用的代码:
<script>
jQuery(document).ready(function(e) {
jQuery('.catlist').change(function() {
<?php fn_dropdown_post(" ?> jQuery(this).val() <?php "); ?>;
});
});
</script>
在上面的代码jQuery(this).val()
中显示了所选类别的值。
有什么建议吗?
答案 0 :(得分:0)
我发现这可以使用ajax
完成<script>
jQuery(document).ready(function() {
jQuery('.catlist').change(function(){
jQuery.ajax({
type: 'POST',
url: 'http://www.mywebsite.com/wp-admin/admin-ajax.php',
data: {
action: 'fn_dropdown_post',
cat_id: jQuery('.catlist').val(),
},
success: function(data, textStatus, XMLHttpRequest){
jQuery("#post-list").empty();
jQuery("#post-list").append(data);
},
error: function(MLHttpRequest, textStatus, errorThrown){
alert(errorThrown);
}
});
});
});
</script>
然而,我仍在试图找出使用wordpress的AJAX的正确方法。有很多教程,但没有教程用简单的语言解释这个主题。