简体   繁体   中英

Filter by Custom Field (ACF) / Wordpress

I have a loop and I have some standard sort options including sort by Date & Title. I also have a 3rd option I would like to add which filters out the "Studio" quality posts... I have added a check box which I can select or unselect in the back end for each post but how do I add it to my filters?

I have written this code which allows the end user to sort posts but I need to add a 3rd option

<div class="btn-group btn-group-vi">
                            <button type="button" class="btn btn-sort dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><?php if(!empty($orderby == 'title')) { echo "Alphabetical"; } elseif($orderby = 'date') { echo "Date Added"; } else { echo "Order by"; } ?></button>
                            <div class="dropdown-menu">
                                <a class="dropdown-item" href="?orderby=title<?php if(!empty($order)) { echo "&order=" . $order; } ?>">Alphabetical</a>
                                <a class="dropdown-item" href="?orderby=date<?php if(!empty($order)) { echo "&order=" . $order; } ?>">Date Added</a>
                            </div>
                        </div>

                        <div class="btn-group btn-group-vi">
                            <button type="button" class="btn btn-sort dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><?php if(!empty($order == 'asc')) { echo "ASC"; } elseif($order = 'desc') { echo "DESC"; } else { echo "Order"; } ?></button>
                            <div class="dropdown-menu">
                                <a class="dropdown-item" href="<?php if(!empty($orderby)) { echo "?orderby=" . $orderby . "&"; } ?>order=asc">ASC</a>
                                <a class="dropdown-item" href="<?php if(!empty($orderby)) { echo "?orderby=" . $orderby . "&"; } ?>order=desc">DESC</a>
                            </div>
                        </div>

                        <?php

                            $loop = new WP_Query( array( 
                                'post_type' => 'acapella',
                                'posts_per_page' => 18,
                                'paged' => $paged,
                                'orderby' => $orderby,
                                'order' => $order
                            )); 
                            $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
                        ?>

I have also added the screenshot of the new custom field added in ACF. 在此处输入图片说明

Edit your args including meta key "studio_acapella":

$loop = new WP_Query( array( 
  'post_type' => 'acapella',
  'posts_per_page' => 18,
  'paged' => $paged,
  'orderby' => $orderby,
  'order' => $order,
  'meta_query' => array(
   array(
        'key'       => 'studio_acapella',
        'value'     => true
    ),
   )
 )
)); 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM