更新wordpress中类别更改的帖子下拉列表

时间:2013-02-11 07:46:32

标签: jquery wordpress

我使用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()中显示了所选类别的值。

有什么建议吗?

1 个答案:

答案 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的正确方法。有很多教程,但没有教程用简单的语言解释这个主题。