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

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

萨龙龙萨龙龙WordPress7年前001.29W
还是在开发导航类主题 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.37M457.18W4.42W
加载中…
分享:
WordPress使用WP-Cron函数定时执行任务
WordPress使用WP-Cron函数定时执行任务上一篇
WooCommerce 注册表单添加本站名称为字段的验证方式下一篇
WooCommerce 注册表单添加本站名称为字段的验证方式
相关文章
总数:114

WordPress 功能函数—— add_blog_option(为指定的博客ID添加新选项)

描述 您不需要序列化值。如果需要序列化值,则在将其插入数据库之前将其序列化。请记住,资源不能序列化或作为选项添加。 …
萨龙龙萨龙龙WordPress Functions7年前001.18W0

WordPress网站统计相关信息使用大全

很多个人博客都有一个小工具是来统计网站的一些信息,Deephoto主题企业版本首页就集成了网站统计,添加了工作天数、完成作品、新闻动态、摄影师、…
萨龙龙萨龙龙WordPress10年前001.25W0

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

一般的Wordpress主题中都有多种自定义文章类型,除了了默认的文章还会有作品、商品等自定义类型的文章,而WordPress默认只能搜索到文章…
萨龙龙萨龙龙WordPress10年前001.33W0

WordPress 出现 Allowed memory size of 134217728 bytes exhausted 错误如何修复

当出现 "Allowed memory size of 134217728 bytes exhausted" 错误时,意味着 PHP 内存限制被…
萨龙龙萨龙龙WordPress3年前002.55W0

WordPress 判断是否在循环中的函数 in_the_loop

WordPress 主题开发中,很多时间需要在文章与列表中进行判断从而输出不同的内容,比如文章分类,只想在列表中显示,文章中不显示。列表页面可直…
萨龙龙萨龙龙WordPress7年前001.12W0

WordPress获取当前分类的顶级分类ID

在开发吃货主题Chihuo时,要对产品和文章进行筛选,在一级分类下显示所有一级分类和当前一级分类下的所有二级分类,在二级分类下,显示所有一级分类…
萨龙龙萨龙龙WordPress9年前001.88W0

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

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

WordPress 重置缩略图插件 Regenerate Thumbnails 获取媒体数量时错误的解决方法

WordPress 一键重置缩略图使用相当简单方便,设置了媒体中要裁剪的缩略图参数(使用了 WooCommerce 商城插件,需要在外观——自定…
萨龙龙萨龙龙WordPress7年前001.11W0

WordPress龙霄主题对象存储功能完全指南:告别服务器存储瓶颈,开启云端加速时代

龙霄主题内置的原生对象存储功能模块,彻底解决了这一痛点。该模块深度集成了阿里云 OSS、腾讯云 COS、七牛云 Kodo 三大主流云存储服务商,…
萨龙龙萨龙龙WordPress13天前001250

WordPress桌面客户端无需浏览器管理多个站点及JetPack安装使用

WordPress推出已经十多年了,越来越多的个人与公司都是在使用其开发自己的网站,全球的开发者也都在为其提供程序。WordPress移动客户端…
萨龙龙萨龙龙WordPress10年前001.81W0

WordPress获取不同用户、类型文章和自定义字段下的文章数量

萨龙网络开发的 MNews 主题中,集成了个人中心功能,需要获取文章、视频、下载、专题和商城的文章数量,这个是比较简单,使用wp_count_p…
萨龙龙萨龙龙WordPress8年前001.13W0

WordPress 主题 MNews Pro 5.2 投稿新增可插入音视频功能

MNews Pro 主题已经更新到5.2版本,功能已经很完善,且实用,在文章投稿编辑器有用户提出不能上传视频或者插入视频简码不方便的问题。 …
萨龙龙萨龙龙WordPress3年前002.66W0
评论表单游客 您好,欢迎参与讨论。
加载中…
评论列表
总数:0
萨龙网络
没有相关内容