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.
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.