萨龙网络
登录
首页-WordPress文章-WordPress-正文

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

萨龙龙萨龙龙
WordPress
7年前
0
0
1.04W
还是在开发导航类主题 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年从江西骑行来到大理,现栖居于洱海边,食人间烟火,过简单生活,做简约设计!
1342.20M456.65W3.85W
分享:
WordPress使用WP-Cron函数定时执行任务
WordPress使用WP-Cron函数定时执行任务上一篇
WooCommerce 注册表单添加本站名称为字段的验证方式下一篇
WooCommerce 注册表单添加本站名称为字段的验证方式
相关文章
总数:107

WordPress+Nuxt3前后端分离项目,实现不限层级的多维数组菜单

使用WordPress+Nuxt3做前后端分离项目时,菜单需要多维数组,且不限层级,可以使用递归函数很方便地将wp_get_nav_menu…
萨龙龙萨龙龙
WordPress
2年前
2
1
2.99W
0

WordPress 插入页面函数 wp_insert_post

萨龙网络已经开发了很多WordPress主题,LensNews主题要创建的页面较多,所以导致很多用户来咨询如何设置用户中心,在最新上线的…
萨龙龙萨龙龙
WordPress
7年前
0
0
2.10W
0

更新至 WordPress5.0版本后古腾堡(Gutenberg)编辑器发布与更新失败的解决方法(只对萨龙网络主题测试)

萨龙网络所有主题都集成了很多优化功能,在WordPress更新至5.0版本后,古腾堡(Gutenberg)编辑器发布与更新文章/页面就出现错…
萨龙龙萨龙龙
WordPress
7年前
0
0
8.23K
0

WooCommerce 商城首页排除指定分类

WooCommerce是WordPress中最强大的商城插件,没有之一。在Slearn主题的开发过程中,需要将课程和商城结合,课程使用…
萨龙龙萨龙龙
WooCommerce
6年前
0
0
1.03W
0

WordPress强大好用的分页插件WP-PageNavi使用

相信使用Wordpress的朋友都对WP-PageNavi分页插件不陌生,很多博客对它也有很多介绍,之前也使用过代码来实现分页,但不够人性化,使…
萨龙龙萨龙龙
WordPress
9年前
0
0
2.44W
0

WordPress主题使用jQuery插件Isotope添加作品集筛选功能

上一篇文章我们介绍了Isotope,功能强大,效果出众的jQuery插件,但是文章中的代码并不能使用在项目中,所以今天通过Wordpress主题…
萨龙龙萨龙龙
jQuery插件, WordPress
10年前
0
0
1.85W
0

让SI CAPTCHA Anti-Spam插件支持WooCommerce注册表单验证码

萨龙网络使用的主题Purity最新版本弃用了Buddypress社区插件,这样注册表单只能使用WooCommerce商城自带的,验证码还是使用S…
萨龙龙萨龙龙
WooCommerce, WordPress
9年前
0
0
1.59W
0

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

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

WordPress为分类添加自定义值

在开发一些比较独特的主题过程中,需要自定义很多内容,本文是如何为分类添加自定义缩略图。 将如下代码添加到主题functions.php中:…
萨龙龙萨龙龙
WordPress
9年前
0
0
1.05W
0

WordPress 获取用户 ID 的8种方法

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

WordPress 功能函数—— add_clean_index(向指定的表添加索引)

描述 向指定的表添加索引。 用法 add_clean_index(string$table,st…
萨龙龙萨龙龙
WordPress Functions
6年前
0
0
9.34K
0

删除或失效WordPress文章中的图像大小属性

默认情况下,WordPress会将图像元素width和height属性添加到图像元素中。这些属性会影响CSS宽度和高度属性,图片延迟加载时默认图…
萨龙龙萨龙龙
WordPress, 前端资讯
6年前
0
0
1.14W
0
评论表单游客 您好,欢迎参与讨论。
请输入昵称
请输入邮箱
请输入网址
0 / 0
评论列表
总数:0
萨龙网络
没有相关内容