Methode zur „Orderby'-Filterung (ASC und DESC) von WP_Query mithilfe von meta_query
P粉007288593
2023-09-01 16:20:27
<p>Ich versuche, Beiträge nach „DESC“ zu filtern, indem ich die benutzerdefinierten Metadaten „like_count_on_post“ verwende und dann alle leeren „like_count_on_post“ und „dislike_count_on_post“ sammle und schließlich nach „ASC“ von „dislike_count_on_post“ sortiere, aber ich kann nur Likes abrufen in absteigender Reihenfolge, oder wenn ich lösche: </p>
<blockquote>
<p>'custom_field_value' => 'DESC'</p>
</blockquote>
<p>Ich kann die aufsteigende Reihenfolge schrittweise abrufen, aber nicht beides gleichzeitig. </p>
<p>Abfrageparametercode: </p>
<pre class="brush:php;toolbar:false;">$args = array(
'post_status' => 'veröffentlichen',
'post_type' => 'sveikinimai',
'meta_query' => array(
„Beziehung“ =>
'likes' => array(
„Beziehung“ =>
'custom_field_value' => array(
'key' => '_like_count_on_post_',
),
'custom_field' => array(
'key' => '_like_count_on_post_',
'compare' => 'NICHT EXISTIERT',
),
),
'mag nicht' => array(
„Beziehung“ =>
'custom_field_value_2' => array(
'key' => '_dislike_count_on_post_',
),
'custom_field_2' => array(
'key' => '_dislike_count_on_post_',
'compare' => 'NICHT EXISTIERT',
),
),
),
'orderby' => array(
'custom_field_value' => 'DESC',
'custom_field_value_2' => 'ASC'
),
'posts_per_page' =>
'paged' => $paged,
);</pre>
<p>Update: Wenn Sie nicht vorhandene Metadatenfelder herausfiltern möchten, finden Sie hier den Code: </p>
<pre class="brush:php;toolbar:false;">$args = array(
'post_status' => 'veröffentlichen',
'post_type' =>
'meta_query' => array(
„Beziehung“ =>
'custom_field_value' => array(
'key' => '_like_count_on_post_',
),
'custom_field_value_2' => array(
'key' => '_dislike_count_on_post_',
),
),
'orderby' => array(
'custom_field_value' => 'DESC',
'custom_field_value_2' => 'ASC'
),
'posts_per_page' =>
'paged' => $paged,
);</pre></p>
为了解决问题,我在所有帖子中添加了'like_count_on_post'和'dislike_count_on_post'元字段。过滤器正常工作,我认为当字段为空时不会解决,但是这里有代码使这些字段不为空: