Ahmad Awais

NAVIGATE


SHARE


EDD Taxonomy Terms: Include/Exclude and Redux Select Field

Ahmad AwaisAhmad Awais

Today while working over a premium WordPress theme I had to solve two problems. First of all I needed to build a custom WordPress query through which I could display posts from a particular term while excluding other particular terms. Secondly, I wanted to provide end-user with a select-2 based drop down menu to select from the present terms of a custom taxonomy.

Context#

Think of a theme which displays three different blocks of posts on the homepage. Basically, I am building a theme for Easy Digital Downloads plugin. Now think again, at the homepage you need to add three different blocks of posts from three different terms of EDD’s Categories. Where EDD’s categories are based upon a custom taxonomy calledย download_category.

Data Set#

Building a custom WPQuery#

First of all I needed to build a custom query. While building custom WPQuery for taxonomy you need to realize that it is pretty different from simple queries of custom post types. Here one needs to build an array for tax_query argument. Inside this array we define the relation of two more arrays of posts where former is responsible for selecting the posts from a term and later array is responsible for excluding posts from defined terms. Here is how I did it.
Where term ID 7 is the Featured term ID and 5,6 are for Recent and Deals terms respectively.

Adding aย terms to Redux field type: select#

I use Redux Framework to provide my theme users with a set of options in form of a Theme Settings page. Luckily Redux offers a select-2 based field type called select. I wanted to provide theme users with a drop down panel from where they could select a particular category ย for a particular block i.e. term from a custom taxonomy.

All I had to do was build a custom arguments array toย define which particular custom taxonomy should be used to populate the select-2 based drop-down menu. So, I went ahead and started reading the docs for select field. I must say Dovy Paukstys (@SimpleRain) has done a pretty good job with Redux framework and its documentation. Though at first, I was not able to make much sense out of it. Then after several iterations I finally found a solution which I intend to document today. ย  ย 
Look at line #14, I have added an array where I defined the custom taxonomy which should be used to populate terms in the select drop down. This is how it looks inside theme options.

Terms-in-redux-select

Final Form of WPQuery#

Finally here is whatย WPQuery for Block #1 looks like

That’s about it. If you have any questions, let me know.

Helping businesses build developer-led adoption for 10+ yrs.
VP of Developer Relations (DevRel, DX Eng., Dev Content Docs) at RapidAPI. I'm Hiring!

๐Ÿ“Ÿ Edutainer at Node.js CLI Automation course (100 videos ยท 22 Projects) & VSCode.pro course. Over 36K devs learning. ๐ŸŽฉ Award-winning Open Source Engineer & Dev Advocate ๐ŸฆŠ Google Developers Expert Web DevRel ๐Ÿš€ Mars Ingenuity Helicopter code contributor ๐Ÿ† 8th GitHub Stars Award recipient ๐ŸŒณ Node.js foundation Community Committee Outreach Lead, Member Linux Foundation, OpenAPI Business Governing Board, and DigitalOcean Navigator.

โœŒ๏ธ Author of various open-source dev-tools and software libraries used by millions of developers worldwide โ“ฆ WordPress Core Developer ๐Ÿ“ฃ TEDx Speaker with 100+ international talks.

๐Ÿ”ฅ Satya Nadella ยท CEO of Microsoft, said โ€” Awais is an awesome example for developers.
๐Ÿ™Œ Leading developers and publishing technical content for over a decade ๐Ÿ’œ Loves his wife (Maedah) โฏ Read more about Ahmad Awais.

๐Ÿ‘‹โ€ฆ Awais is mostly active on Twitter @MrAhmadAwais

๐Ÿ“จ

Developers Takeaway

Stay ahead in the web dev community with Ahmad's expert insights on open-source, developer relations, dev-tools, and side-hustles. Insider-email-only-content. Don't miss out - subscirbe for a dose of professional advice and a dash of humor. No spam, pinky-promise!

โœจ 172,438 Developers Already Subscribed
Comments 2
  • Isu
    Posted on

    Isu Isu

    Reply Author

    What if I want get posts from Taxonomy and there are must be from different post type?
    Eg.
    ‘type’ => ‘select’,
    ‘data’ => ‘posts’,
    ‘args’ => array(‘taxonomy’ => array(‘download_category’)),
    But this not work, it show posts from default posts.


    • Ahmad Awais
      Posted on

      Ahmad Awais Ahmad Awais

      Reply Author

      I didn’t really get your question. Posts from taxonomies are already available at their archive pages.