WordPress WP_Query 常用查询

在 WordPress 中,WP_Query 是最常用的查询类,它允许你灵活地自定义和筛选文章、页面、附件或自定义文章类型等。以下是一些常用的 WP_Query 查询示例,包括排序、比较、分类法、元数据查询等。

1. 排序(Sorting)

通过 orderby 参数,你可以控制查询结果的排序方式。常见的排序方式包括按发布时间、标题、评论数等。

示例:按发布时间排序

$args = array(
    'orderby' => 'date',  // 按日期排序
    'order'   => 'DESC',   // 降序
);
$query = new WP_Query($args);

示例:按评论数排序

$args = array(
    'orderby' => 'comment_count',  // 按评论数排序
    'order'   => 'DESC',           // 降序
);
$query = new WP_Query($args);

2. 比较(Comparing)

WordPress 支持对文章的比较,例如按某些字段的值进行比较。通常是通过 meta_query 来进行比较。

示例:按某个自定义字段的值进行比较

假设我们有一个名为 price 的自定义字段,我们可以按照价格从低到高排序。

$args = array(
    'meta_key' => 'price',      // 自定义字段名
    'orderby'  => 'meta_value_num', // 按数字进行排序
    'order'    => 'ASC',         // 升序
);
$query = new WP_Query($args);

3. 分类法(Taxonomy)

你可以通过 tax_query 参数来筛选属于某个分类(或自定义分类法)的文章。

示例:筛选特定分类的文章

$args = array(
    'tax_query' => array(
        array(
            'taxonomy' => 'category',  // 分类法名称
            'field'    => 'slug',      // 分类的字段
            'terms'    => 'news',      // 分类的 slug
        ),
    ),
);
$query = new WP_Query($args);

示例:筛选多个分类的文章

$args = array(
    'tax_query' => array(
        array(
            'taxonomy' => 'category',
            'field'    => 'slug',
            'terms'    => array('news', 'events'), // 多个分类
        ),
    ),
);
$query = new WP_Query($args);

4. 元数据查询(Meta Query)

meta_query 允许你根据自定义字段的值进行文章查询,支持多种比较操作。

示例:根据自定义字段的值查询文章

假设我们有一个自定义字段 price,想要查询价格大于 100 的文章。

$args = array(
    'meta_query' => array(
        array(
            'key'     => 'price',
            'value'   => 100,
            'compare' => '>',  // 大于 100
            'type'    => 'NUMERIC',  // 指定类型为数字
        ),
    ),
);
$query = new WP_Query($args);

示例:多个元数据查询

你可以使用多个条件来查询文章。例如,查询价格大于 100 且发布时间在某个日期之后的文章:

$args = array(
    'meta_query' => array(
        'relation' => 'AND',  // 可以设置为 OR 或 AND,控制关系
        array(
            'key'     => 'price',
            'value'   => 100,
            'compare' => '>',
            'type'    => 'NUMERIC',
        ),
        array(
            'key'     => 'publish_date',
            'value'   => '2023-01-01',
            'compare' => '>',
            'type'    => 'DATE',
        ),
    ),
);
$query = new WP_Query($args);

5. 自定义过滤器(Custom Filters)

你可以创建自定义的查询条件和过滤器来处理数据。例如,按自定义查询参数过滤文章。

示例:按特定 URL 参数进行查询

假设你希望根据 URL 中的查询参数 sort 来排序文章。

$sort = isset($_GET['sort']) ? $_GET['sort'] : 'date';

$args = array(
    'orderby' => $sort,  // 根据 URL 参数进行排序
    'order'   => 'DESC', // 降序
);
$query = new WP_Query($args);

6. 自定义搜索(Custom Search)

你可以自定义搜索功能来精确匹配某些内容。

示例:自定义搜索文章标题和内容

$args = array(
    's' => 'search_term',  // 'search_term' 为你要搜索的关键词
    'posts_per_page' => -1, // 不限制返回结果数量
);
$query = new WP_Query($args);

示例:按自定义字段进行搜索

假设你想根据 price 自定义字段来进行搜索:

$args = array(
    'meta_query' => array(
        array(
            'key'     => 'price',
            'value'   => 100,
            'compare' => '>',
            'type'    => 'NUMERIC',
        ),
    ),
    'posts_per_page' => -1,
);
$query = new WP_Query($args);

7. 自定义文章类型(Custom Post Types)

你可以查询自定义文章类型,例如产品、作品等。

示例:查询自定义文章类型 "product" 的文章

$args = array(
    'post_type' => 'product',  // 自定义文章类型
    'posts_per_page' => 10,    // 每页显示 10 篇
);
$query = new WP_Query($args);

示例:查询自定义文章类型和分类法

$args = array(
    'post_type' => 'product',  // 自定义文章类型
    'tax_query' => array(
        array(
            'taxonomy' => 'product_category', // 自定义分类法
            'field'    => 'slug',
            'terms'    => 'electronics', // 分类 slug
        ),
    ),
);
$query = new WP_Query($args);

8. 自定义字段(Custom Fields)

查询基于自定义字段的文章是非常常见的需求,尤其是电商网站或复杂的内容展示场景。

示例:按自定义字段查询

假设你有一个 price 的自定义字段,并且想按价格筛选文章。

$args = array(
    'meta_query' => array(
        array(
            'key'     => 'price',
            'value'   => 100,
            'compare' => '>',
            'type'    => 'NUMERIC',
        ),
    ),
    'posts_per_page' => 10,
);
$query = new WP_Query($args);

总结

通过 WP_Query 类,你可以在 WordPress 中灵活地进行各种类型的查询,包括排序、分类筛选、自定义字段查询、元数据查询等。你可以根据自己的需求创建精确的查询和过滤器,甚至使用自定义搜索功能来满足特殊需求。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇