Sort in WP_Query(), not filter? Is it possible?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}
I want to query and SORT in WP_Query(). But whatever I do, it only prints posts with meta_key set up. But I want all the results and just sort them.
This is my query:
$query = new WP_Query(array(
'post_type' => 'my_post_type',
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_key' => 'post_views_count',
'orderby' => 'meta_value_num',
'order' => 'DESC'
));
Any ideas how to make sorting happen? It sorts, but only shows posts with meta_key set up. I want all the posts.
wp-query sort
add a comment |
I want to query and SORT in WP_Query(). But whatever I do, it only prints posts with meta_key set up. But I want all the results and just sort them.
This is my query:
$query = new WP_Query(array(
'post_type' => 'my_post_type',
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_key' => 'post_views_count',
'orderby' => 'meta_value_num',
'order' => 'DESC'
));
Any ideas how to make sorting happen? It sorts, but only shows posts with meta_key set up. I want all the posts.
wp-query sort
1
You'll need to hook into theposts_orderby
filter for that.
– mrben522
14 hours ago
Ok so as I understand correctly. I now have custom posts in wp_posts table and custom meta in wp_postmeta. Now I only need a way to "connect" those two. So in return it should be something like wp_posts.wp_postmeta DESC? Or how do I connect those two tables? Thanks a lot!
– LubWn
14 hours ago
add a comment |
I want to query and SORT in WP_Query(). But whatever I do, it only prints posts with meta_key set up. But I want all the results and just sort them.
This is my query:
$query = new WP_Query(array(
'post_type' => 'my_post_type',
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_key' => 'post_views_count',
'orderby' => 'meta_value_num',
'order' => 'DESC'
));
Any ideas how to make sorting happen? It sorts, but only shows posts with meta_key set up. I want all the posts.
wp-query sort
I want to query and SORT in WP_Query(). But whatever I do, it only prints posts with meta_key set up. But I want all the results and just sort them.
This is my query:
$query = new WP_Query(array(
'post_type' => 'my_post_type',
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_key' => 'post_views_count',
'orderby' => 'meta_value_num',
'order' => 'DESC'
));
Any ideas how to make sorting happen? It sorts, but only shows posts with meta_key set up. I want all the posts.
wp-query sort
wp-query sort
asked 14 hours ago
LubWnLubWn
154
154
1
You'll need to hook into theposts_orderby
filter for that.
– mrben522
14 hours ago
Ok so as I understand correctly. I now have custom posts in wp_posts table and custom meta in wp_postmeta. Now I only need a way to "connect" those two. So in return it should be something like wp_posts.wp_postmeta DESC? Or how do I connect those two tables? Thanks a lot!
– LubWn
14 hours ago
add a comment |
1
You'll need to hook into theposts_orderby
filter for that.
– mrben522
14 hours ago
Ok so as I understand correctly. I now have custom posts in wp_posts table and custom meta in wp_postmeta. Now I only need a way to "connect" those two. So in return it should be something like wp_posts.wp_postmeta DESC? Or how do I connect those two tables? Thanks a lot!
– LubWn
14 hours ago
1
1
You'll need to hook into the
posts_orderby
filter for that.– mrben522
14 hours ago
You'll need to hook into the
posts_orderby
filter for that.– mrben522
14 hours ago
Ok so as I understand correctly. I now have custom posts in wp_posts table and custom meta in wp_postmeta. Now I only need a way to "connect" those two. So in return it should be something like wp_posts.wp_postmeta DESC? Or how do I connect those two tables? Thanks a lot!
– LubWn
14 hours ago
Ok so as I understand correctly. I now have custom posts in wp_posts table and custom meta in wp_postmeta. Now I only need a way to "connect" those two. So in return it should be something like wp_posts.wp_postmeta DESC? Or how do I connect those two tables? Thanks a lot!
– LubWn
14 hours ago
add a comment |
2 Answers
2
active
oldest
votes
If you want to sort the posts by the meta post_views_count
, and still include posts that do not have that meta, you can use meta_query
like so:
'meta_query' => array(
'relation' => 'OR', // make sure it's OR
// Include posts that have the meta.
array(
'key' => 'post_views_count',
'compare' => 'EXISTS',
),
// Include posts that don't have the meta.
array(
'key' => 'post_views_count',
'compare' => 'NOT EXISTS',
),
),
And you can just use that in place of this:
'meta_key' => 'post_views_count',
I.e. Your code would look like:
$query = new WP_Query(array(
'post_type' => 'my_post_type',
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'post_views_count',
'compare' => 'EXISTS',
),
array(
'key' => 'post_views_count',
'compare' => 'NOT EXISTS',
),
),
'orderby' => 'meta_value_num',
'order' => 'DESC',
));
add a comment |
Have you already tried 'meta_query'
? See Order by multiple meta key and meta value [closed]. In your case maybe like so:
$query = new WP_Query([
'post_type' => 'my_post_type',
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_query' => [
'relation' => 'OR',
'post_views_count' => [
'key' => 'post_views_count',
'compare' => 'EXISTS',
],
],
'orderby' => [
'post_views_count' => 'DESC',
'title' => 'ASC',
],
]);
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "110"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fwordpress.stackexchange.com%2fquestions%2f333787%2fsort-in-wp-query-not-filter-is-it-possible%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
If you want to sort the posts by the meta post_views_count
, and still include posts that do not have that meta, you can use meta_query
like so:
'meta_query' => array(
'relation' => 'OR', // make sure it's OR
// Include posts that have the meta.
array(
'key' => 'post_views_count',
'compare' => 'EXISTS',
),
// Include posts that don't have the meta.
array(
'key' => 'post_views_count',
'compare' => 'NOT EXISTS',
),
),
And you can just use that in place of this:
'meta_key' => 'post_views_count',
I.e. Your code would look like:
$query = new WP_Query(array(
'post_type' => 'my_post_type',
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'post_views_count',
'compare' => 'EXISTS',
),
array(
'key' => 'post_views_count',
'compare' => 'NOT EXISTS',
),
),
'orderby' => 'meta_value_num',
'order' => 'DESC',
));
add a comment |
If you want to sort the posts by the meta post_views_count
, and still include posts that do not have that meta, you can use meta_query
like so:
'meta_query' => array(
'relation' => 'OR', // make sure it's OR
// Include posts that have the meta.
array(
'key' => 'post_views_count',
'compare' => 'EXISTS',
),
// Include posts that don't have the meta.
array(
'key' => 'post_views_count',
'compare' => 'NOT EXISTS',
),
),
And you can just use that in place of this:
'meta_key' => 'post_views_count',
I.e. Your code would look like:
$query = new WP_Query(array(
'post_type' => 'my_post_type',
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'post_views_count',
'compare' => 'EXISTS',
),
array(
'key' => 'post_views_count',
'compare' => 'NOT EXISTS',
),
),
'orderby' => 'meta_value_num',
'order' => 'DESC',
));
add a comment |
If you want to sort the posts by the meta post_views_count
, and still include posts that do not have that meta, you can use meta_query
like so:
'meta_query' => array(
'relation' => 'OR', // make sure it's OR
// Include posts that have the meta.
array(
'key' => 'post_views_count',
'compare' => 'EXISTS',
),
// Include posts that don't have the meta.
array(
'key' => 'post_views_count',
'compare' => 'NOT EXISTS',
),
),
And you can just use that in place of this:
'meta_key' => 'post_views_count',
I.e. Your code would look like:
$query = new WP_Query(array(
'post_type' => 'my_post_type',
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'post_views_count',
'compare' => 'EXISTS',
),
array(
'key' => 'post_views_count',
'compare' => 'NOT EXISTS',
),
),
'orderby' => 'meta_value_num',
'order' => 'DESC',
));
If you want to sort the posts by the meta post_views_count
, and still include posts that do not have that meta, you can use meta_query
like so:
'meta_query' => array(
'relation' => 'OR', // make sure it's OR
// Include posts that have the meta.
array(
'key' => 'post_views_count',
'compare' => 'EXISTS',
),
// Include posts that don't have the meta.
array(
'key' => 'post_views_count',
'compare' => 'NOT EXISTS',
),
),
And you can just use that in place of this:
'meta_key' => 'post_views_count',
I.e. Your code would look like:
$query = new WP_Query(array(
'post_type' => 'my_post_type',
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'post_views_count',
'compare' => 'EXISTS',
),
array(
'key' => 'post_views_count',
'compare' => 'NOT EXISTS',
),
),
'orderby' => 'meta_value_num',
'order' => 'DESC',
));
answered 13 hours ago
Sally CJSally CJ
5,3562616
5,3562616
add a comment |
add a comment |
Have you already tried 'meta_query'
? See Order by multiple meta key and meta value [closed]. In your case maybe like so:
$query = new WP_Query([
'post_type' => 'my_post_type',
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_query' => [
'relation' => 'OR',
'post_views_count' => [
'key' => 'post_views_count',
'compare' => 'EXISTS',
],
],
'orderby' => [
'post_views_count' => 'DESC',
'title' => 'ASC',
],
]);
add a comment |
Have you already tried 'meta_query'
? See Order by multiple meta key and meta value [closed]. In your case maybe like so:
$query = new WP_Query([
'post_type' => 'my_post_type',
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_query' => [
'relation' => 'OR',
'post_views_count' => [
'key' => 'post_views_count',
'compare' => 'EXISTS',
],
],
'orderby' => [
'post_views_count' => 'DESC',
'title' => 'ASC',
],
]);
add a comment |
Have you already tried 'meta_query'
? See Order by multiple meta key and meta value [closed]. In your case maybe like so:
$query = new WP_Query([
'post_type' => 'my_post_type',
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_query' => [
'relation' => 'OR',
'post_views_count' => [
'key' => 'post_views_count',
'compare' => 'EXISTS',
],
],
'orderby' => [
'post_views_count' => 'DESC',
'title' => 'ASC',
],
]);
Have you already tried 'meta_query'
? See Order by multiple meta key and meta value [closed]. In your case maybe like so:
$query = new WP_Query([
'post_type' => 'my_post_type',
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_query' => [
'relation' => 'OR',
'post_views_count' => [
'key' => 'post_views_count',
'compare' => 'EXISTS',
],
],
'orderby' => [
'post_views_count' => 'DESC',
'title' => 'ASC',
],
]);
answered 13 hours ago
leymannxleymannx
73911022
73911022
add a comment |
add a comment |
Thanks for contributing an answer to WordPress Development Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fwordpress.stackexchange.com%2fquestions%2f333787%2fsort-in-wp-query-not-filter-is-it-possible%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
You'll need to hook into the
posts_orderby
filter for that.– mrben522
14 hours ago
Ok so as I understand correctly. I now have custom posts in wp_posts table and custom meta in wp_postmeta. Now I only need a way to "connect" those two. So in return it should be something like wp_posts.wp_postmeta DESC? Or how do I connect those two tables? Thanks a lot!
– LubWn
14 hours ago