1

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

请问有什么建议吗?

4

1 回答 1

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>

但是,我仍在试图弄清楚将 AJAX 与 wordpress 一起使用的正确方法是什么。有很多教程,但没有一个用简单的语言解释这个主题。

于 2013-02-11T10:05:03.553 回答