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

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

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

WordPress 最简便的边栏调用方法与提示

WordPress主题文章类型较多,想实现不同的文章类型页面调用不同的边栏,一般的方法是将代码写在主题根目录下的sidebar.php文件…
萨龙龙萨龙龙
WordPress
8年前
0
0
1.20W
0

翻译WordPress强大实用的Redux框架选项

强大、实用的Redux框架我们已经在WordPress强大的开源后台框架ReduxFramework介绍与使用一文中介绍了,今天我们介绍下如何…
萨龙龙萨龙龙
WordPress, 软件系统
9年前
0
0
1.40W
0

WordPress 主题 Slearn Pro 课程插件之编辑课程选项

课程插件功能已经能满足绝大多数在线教育培训课程网站的需求,选项功能也众多,「即将推出」功能还在开发中。
萨龙龙萨龙龙
WordPress
3年前
0
0
2.23W
0

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

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

Woocommerce一个很漂亮的购物系统

Woocommerce,一个wordpress的电子商务扩展插件,一个很漂亮的可以帮你卖任何东西的工具,这是插件在wordpress后台插件中的…
萨龙龙萨龙龙
WooCommerce
11年前
0
0
1.56W
0

使用WordPress MU一个程序创建多站点网络介绍与安装教程

经常折腾wp的人肯定不止一个博客,主题高产的WPER那就更不用说,所以我们不想重复地安装wordpress,通过WordPressMU只需要安…
萨龙龙萨龙龙
WordPress
10年前
0
0
2.23W
2

移除 WooCommerce 商城插件编辑产品中的产品数据相关 tabs

WooCommerce插件默认为编辑产品页面提供了产品数据TABS,默认包括:常规、库存、配送、联锁产品、属性、高级等模块,功能强大而实用。…
萨龙龙萨龙龙
WooCommerce
8年前
0
0
1.36W
0

WooCommerce为购物车和结算添加附加费 – 使用费用API

为所有交易添加基于百分比的附加费 /** *添加1%的附加费到你的购物车和结算页面 *更改百分比以将附加费设置为适合的…
萨龙龙萨龙龙
WooCommerce
6年前
0
0
1.18W
0

WordPress获取多个角色的用户列表并分页

在WordPress按角色获取可分页的用户列表并显示最新文章这篇文章中我们已经介绍了获取单个角色的用户列表,如果想获取多个角色的用户列表呢,ge…
萨龙龙萨龙龙
WordPress
10年前
0
0
1W
0

萨龙网络集成Buddypress+Bbpress社区论坛功能

前段时间已经发布Purity2.0主题更新的文章,主题已经集成了作品展示、商城,通过半个来月的时间把Buddypress+Bbpress社区论坛…
萨龙龙萨龙龙
Bbpress, Buddypress
10年前
0
0
1.79W
0

WordPress通过分类ID获取分类名称与链接

在Wordpress主题开发的过程中,尤其是CMS主题分类的布局,通过后台选项(萨龙龙使用的都是Redux开源框架)选择分类,前台通过调用分类的…
萨龙龙萨龙龙
WordPress
10年前
0
0
1.85W
0

通过 WordPress 多语言插件 WPML 的语言配置文件 wpml-config.xml 来支持 Polylang 翻译主题选项字段

网上已经有很多介绍WordPress多语言的插件了,比如Polylang和WPML等强大的多语言插件,但是只是介绍,很快都是能掌握怎…
萨龙龙萨龙龙
WordPress
8年前
0
0
1.56W
0
评论表单游客 您好,欢迎参与讨论。
加载中…
评论列表
总数:0
萨龙网络
没有相关内容