Learn, Share, Build

153
October 13, 2017, at 6:56 PM

Hello I'm working on a blog where I want to filter my posts by the values in wp_usermeta data table.

When a user registering to my site, I want the user to select his/her favorite car manufacturer. Then I save that value in the wp_usermeta table.

EX: if a user selects Toyota, I save that record in wp_usermeta table as follows

user_id(column name)=2

meta_key(column name)=brand

meta_value(column name)=Toyota

All my meta_values are post categories, in above case "Toyota" is a post category.

Now I need to filter my blog posts according to that user selected meta_value in the wp_usermeta table.

But I'm struggling to make a connection between postmeta and usermeta tables.

What would be the best way to do it or are there have any better way to full fill my task?

thanks.

Answer 1

You could use pre_get_posts to manipulate the main query on the archive pages (or where ever you want to, really).

I don't believe there is a way to do that in a single query, so I'd just get the favorite values from usermeta an put them into the meta_query.

There are good examples in the docs for WP_Query that you can adapt to your needs. Start with something like

'meta_query' => array(
    array(
            'key'     => 'brand',
            'value'   => 'Toyota',
            'compare' => '=',
    ),
),

In your query.

Rent Charter Buses Company
READ ALSO
Learn, Share, Build

Learn, Share, Build

I have a sql query

235
Learn, Share, Build

Learn, Share, Build

I have the following from my EXPLAIN queryI don't know how I can use this to improve my query performance

198
Learn, Share, Build

Learn, Share, Build

Halo all

215
Learn, Share, Build

Learn, Share, Build

I have two method's in the User class that return different queriesI would like to use both like this

219