您的浏览器需要启用 JavaScript 才能正常访问此网站。
萨龙网络
登录
首页-WordPress文章-WordPress-正文

WordPress 文章查询类 WP_Query 如何获取序列化数组中的文章

萨龙龙萨龙龙WordPress7年前001.28W
还是在开发导航类主题 Slhao 的时候遇到的问题,主题使用 Codestar Framework 专业版选项框架,文章的 Metabox 选项都是存储在一个数组中,导致 WP_Query 不能直接使用子 meta_key 来获取文章,幸好 WordPress 功能强大,WP_Query 类选项也丰富,最终完成了有特定字段的文章输出。

一、文章中的 meta_key 内容的输出

1、单个字段的内容输出 在绝大多数 Metabox 的值都是单个的字段,直接使用:
echo get_post_meta( $post->ID, 'meta_key', true);
就可以输出字段中的内容。 2、序列化数组字段的内容输出 如果字段是一个数组(bookmark_options),输出:
echo get_post_meta( $post->ID, 'bookmark_options', true);
是没有内容,使用 var_dump() 函数打印输出则是一个数组:
array(2) {
    ["website"] => string(21) "https://api.salongweb.com"
    ["common"] => string(1) "1"
}
在编辑文章中假如有website和common两个选项,这时输出以下代码:
echo get_post_meta( $post->ID, 'website', true);
echo get_post_meta( $post->ID, 'common', true);
同样是没有任何内容,只有这样:
$options = get_post_meta( $post->ID, 'bookmark_options', true);
echo $options['common'];
才能输出common的内容是为1,即是输出序列化数组 bookmark_options 中的 common 字段的值。 第一部分主要是说明下序列化数组字段的获取与单个字段的不同。

二、WP_Query 中获取有某个字段的文章

1、获取有单个字段(common)的文章
$args = array(
    'post_type'           => 'bookmark',
    'ignore_sticky_posts' => 1,
    'posts_per_page'      => 4,
    'meta_key'            => 'common'
);
$wp_query = new WP_Query( $args );if ( $wp_query->have_posts() ) :
while ( $wp_query->have_posts() ) : $wp_query->the_post();
    // 输出内容
endwhile;
2、获取bookmark_options序列化数组字段中 common 值为1的文章
$args = array(
    'post_type'           => 'bookmark',
    'ignore_sticky_posts' => 1,
    'posts_per_page'      => 4,
    'meta_query'          => array(
        array(
            'key'         => 'bookmark_options',
            'value'       => 's:6:"common";i:"1";',
            'compare'     => 'LIKE',
        )
    )
);
$wp_query = new WP_Query( $args );if ( $wp_query->have_posts() ) :
while ( $wp_query->have_posts() ) : $wp_query->the_post();
    // 输出内容
endwhile;
s:6:"common";s:1:"1"为整数,如果数组值是字符串或布尔值,则应更改元查询值模式:
// 值为字符串类型
's:6:"common";s:1:"1";'
// 值为布尔值类型
's:6:"common";b:1;'
这个值,都可以在 _postmeta 数据表中对应的字段查看到,使用自定义字段中的compare参数,来进行匹配,匹配的方法为 LIKE,其它的方法还有:=、!=、>、>=、<、<=、LIKE、NOT LIKE、IN、NOT IN、BETWEEN、NOT BETWEEN、EXISTS、NOT EXISTS,所以 WP_Query 类选项是相当丰富,有时间彻底整理一个使用大全。 参考内容:https://ipfs-sec.stackexchange.cloudflare-ipfs.com/wordpress/A/question/84551.html
标签:
本文原创,作者:萨龙龙,其版权均为萨龙网络所有。
如需转载,请注明出处:https://salongweb.com/wordpress-wp_query-compare-like.html
萨龙龙

萨龙龙

侠客
一个平平常常的人,热爱生活、旅行和摄影,骑行去过西藏,一直计划再去。14年从江西骑行来到大理,现栖居于洱海边,食人间烟火,过简单生活,做简约设计!
1412.36M457.17W4.42W
加载中…
分享:
WordPress使用WP-Cron函数定时执行任务
WordPress使用WP-Cron函数定时执行任务上一篇
WooCommerce 注册表单添加本站名称为字段的验证方式下一篇
WooCommerce 注册表单添加本站名称为字段的验证方式
相关文章
总数:114

WordPress 如何根据文章类型向编辑器添加 CSS

在 WordPress 中,我们可以通过向主题中添加 CSS 文件来为页面和文章添加样式。但是,如果您希望根据文章类型添加自定义样式,该怎么办呢…
萨龙龙萨龙龙WordPress3年前002.29W0

解决网站嵌入优酷视频堆叠顺序的问题

很多网站都会插入优酷或其它网站的在线视频到自己的网站中,默认情况下优酷视频的堆叠顺序并不受CSS样式z-index属性的影响,在视频页面有滚动、…
萨龙龙萨龙龙WordPress10年前001.36W0

禁用 WordPress 裁剪功能包括自动生成的 768 像素图片

WordPress 媒体库是很强大、管理媒体相当方便,如果媒体多就给数据库增加了压力,而且很多媒体是不需要上传到媒体库,上传的图片会增加很多无用…
萨龙龙萨龙龙WordPress8年前001.36W0

WooCommerce 商城插件的条件式标签

可以在模板文件中使用WooCommerce和WordPress的条件式标签,以根据匹配页面的条件来显示的特定内容。例如,您可能想要在商店页面上方…
萨龙龙萨龙龙WooCommerce8年前001.36W0

WordPress 获取用户 ID 的8种方法

在 WordPress 主题的开发过程中,获取用户 ID 的频率是很高的,可在 WordPress 中查看用户信息,也可以通过代码直接获取。 …
萨龙龙萨龙龙WordPress4年前005.11W0

WordPress龙霄加盟推广系统 —— 数据一目了然,结算一步到位:多语言电商推广管理后台

一、开发背景与定位龙霄加盟推广插件(LongXiao Affiliate)是由萨龙网络出品的一款深度 WordPress 电商加盟推广管…
萨龙龙萨龙龙WordPress12天前002480

WordPress 简约实用的主题选项框架 Codestar Framework

Codestar Framework,一个轻量且易用的 WordPress 选项框架,在萨龙龙最新设计开发的企业教育培训类 WordPress …
萨龙龙萨龙龙WordPress7年前004W0

WordPress 主题感染恶意代码function _check_active_widgets

萨龙龙开发主题这么久,第一次感染恶意代码,整个 WordPress 下的主题 functions.php 都被插入了一大段函数代码,百度一下也发…
萨龙龙萨龙龙WordPress8年前001.68W0

在WooCommerce中添加“立即购买”按钮直接跳转到结算页面

MNews 主题集成了 WooCommerce 商城插件,有些用户要求增加一个『立即购买』按钮,这篇文章介绍下如何在WooCommerce中添加…
萨龙龙萨龙龙WooCommerce8年前003.21W0

WordPress 限制上传媒体的文件类型

MNews 和 LensNews 主题都有前台投稿的功能,用户可以上传图片等文件,管理员是不希望用户上传任意的媒体文件,这时我们可以对用户上传的…
萨龙龙萨龙龙WordPress8年前001.30W0

WordPress 主题 Slearn Pro 产品插件之属性设置

产品属性可在后台「产品——产品选项——属性」中单独设置(也可在编辑产品时再次添加),有三种类型:文本、颜色和图片,在前台也是以这三种方式来显示。…
萨龙龙萨龙龙WordPress3年前002.59W0

WordPress按自定义文章类型进行搜索

一般的Wordpress主题中都有多种自定义文章类型,除了了默认的文章还会有作品、商品等自定义类型的文章,而WordPress默认只能搜索到文章…
萨龙龙萨龙龙WordPress9年前001.33W0
评论表单游客 您好,欢迎参与讨论。
加载中…
评论列表
总数:0
萨龙网络
没有相关内容