wordpress在默认情况下可以使用文章的一个自定义字段进行排序,代码如下:
1 |
<span class="pln">$args </span><span class="pun">=</span><span class="pln"> array</span><span class="pun">(</span> <span class="str">'meta_key'</span> <span class="pun">=></span> <span class="str">'sort'</span><span class="pun">,</span> <span class="str">'orderby'</span> <span class="pun">=></span> <span class="str">'meta_value_num'</span><span class="pun">,</span> <span class="com">// 须 WordPress 2.8 及以上版本</span> <span class="str">'order'</span> <span class="pun">=></span><span class="pln"> DESC </span><span class="pun">);</span><span class="pln"> $arms </span><span class="pun">=</span><span class="pln"> array_merge</span><span class="pun">(</span><span class="pln">$args</span><span class="pun">,</span><span class="pln"> $wp_query</span><span class="pun">-></span><span class="pln">query</span><span class="pun">);</span><span class="pln"> query_posts</span><span class="pun">(</span><span class="pln">$arms</span><span class="pun">);</span> <span class="kwd">while</span> <span class="pun">(</span><span class="pln">have_posts</span><span class="pun">())</span> <span class="com">//循环内容</span><span class="pln"> endwhile</span><span class="pun">;</span><span class="pln">wp_reset_query</span><span class="pun">();</span> |
但是有时候我们可能会碰到更加复杂的情况,需要对两个自定义字段进行组合排序,方法如下:
1 |
<span class="pln">$query </span><span class="pun">=</span> <span class="str">"SELECT wposts.*, wpostmeta1.*, wpostmeta2.* FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta1, $wpdb->postmeta wpostmeta2 WHERE wposts.ID = wpostmeta1.post_id AND wposts.ID = wpostmeta2.post_id AND wpostmeta1.meta_key = 'date' AND wpostmeta2.meta_key = 'time' ORDER BY wpostmeta1.meta_value ASC, wpostmeta2.meta_value ASC"</span><span class="pun">;</span><span class="pln"> $results </span><span class="pun">=</span><span class="pln"> $wpdb</span><span class="pun">-></span><span class="pln">get_results</span><span class="pun">(</span><span class="pln">$query</span><span class="pun">);</span> <span class="kwd">foreach</span> <span class="pun">(</span><span class="pln"> $results </span><span class="kwd">as</span><span class="pln"> $result </span><span class="pun">)</span> <span class="pun">{</span> <span class="com">//循环内容</span> <span class="pun">}</span> |
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。