使用自定义字段值和下拉列表过滤结果

时间:2013-01-31 作者:Andycap

我需要按自定义字段值筛选帖子。

我的具体示例:

用户浏览到产品>类别1>子类别A。

  • 默认情况下,所有“子类别A”项目(产品自定义帖子类型)都会按日期显示

    编辑:自定义字段值是固定的,而不是自动填充的。select可以在纯html中构建,无需额外查询。

  • 1 个回复
    最合适的回答,由SO网友:Max Yudin 整理而成

    Edited according to first comments 和Pastebin代码:

    <?php /* You can also leave \'action\' blank: action="" */ ?>
    <form method="post" action="<?php echo $_SERVER[\'PHP_SELF\']; ?>">
    <select name="my_size" id="size" class="postform" onchange="submit();">
            <option selected="selected">Choose a size</option>
            <option value="10">10</option>
            <option value="20">20</option>
    </select>
    </form>
    <?php /* Reset filter */ ?>
    <p><a href="<?php the_permalink(); ?>">Clear filter</a></p>
    
    <?php
    if( !isset($_POST[\'my_size\']) || \'\' == $_POST[\'my_size\']) {
    
        // unfiltered product list here
    
    }
    else {
    
        // Get dropdown value
        // Don\'t forget to sanitize this!
        $size = $_POST[\'my_size\'];
    
        // Create new query
        $query = new WP_Query( array(
            \'post_type\'=> \'product\', // your CPT
            \'post_status\' => \'publish\',
            \'meta_key\' => \'size\',
            \'meta_value\' => $size, // Dropdown value
        ) );
    
        // Loop
        if($query->have_posts()):
            while( $query->have_posts() ): $query->the_post();
                // Product content
            endwhile;
        endif;
    
        // reset query to default
        wp_reset_postdata();
    
    }
    
    参见法典WP_Query reference.

    结束

    相关推荐

    在小部件选项中使用wp_Dropdown_Categories

    我有一个产品搜索小部件,当您选择某些产品时,会显示一个隐藏字段。我想在我的小部件选项中设置一个自定义类别,然后用于显示隐藏字段。当我将父category\\u id手动添加到代码中时,前端可以100%工作。现在我只需要在后端设置category选项。这是我目前拥有的,但它不起作用,因为它没有存储所做的选择。我省略了搜索表单,因为它没有使用任何小部件选项。class Equipment_Search extends WP_Widget { function Equipment_Se