我可以使用自定义字段值获取数据吗?我的post_type
是brand-name
,字段名是generic-name
。那么如何使用generic-name
获取所有数据?
这是代码:
$title = get_the_title();
$the_query = new WP_Query( array(
'posts_per_page'=>9,
'post_type'=>'brand-name',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'generic-name',// this key is advance custom field: type post_object
'value' => $title,
'type' => 'char' // type not working
),
),
'paged' => get_query_var('paged') ? get_query_var('paged') : 1)
);`
此代码无效。
答案 0 :(得分:1)
您的AFC字段是一个发布对象,这意味着元值可以是单个发布ID,也可以是发布ID的序列化数组。
如果您的自定义字段设置为仅允许单个选择,则它将是一个id,可以像这样查询:
$post_id = get_the_ID();
$the_query = new WP_Query( array(
'posts_per_page'=>9,
'post_type'=>'brand-name',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'generic-name',// this key is advance custom field: type post_object
'value' => $post_id,
),
),
'paged' => get_query_var('paged') ? get_query_var('paged') : 1)
);`
如果您的自定义字段允许多项选择,那么它将是ID的序列化php数组。由于mysql不知道如何读取php序列化数据,因此您最好的方法是使用LIKE
查询:
$post_id = get_the_ID();
$the_query = new WP_Query( array(
'posts_per_page'=>9,
'post_type'=>'brand-name',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'generic-name',// this key is advance custom field: type post_object
'value' => sprintf("\"%s\"", $post_id),
'compare' => 'LIKE'
),
),
'paged' => get_query_var('paged') ? get_query_var('paged') : 1)
);`
答案 1 :(得分:0)
我认为这可能会对您有所帮助。请看看这个。
我可以使用自定义字段值获取数据吗? -是的,您可以使用自定义字段值获取数据。
首先,我们可以使用以下代码获取自定义字段值。
<?php $custom_field_value= get_post_meta( get_the_ID(), 'generic-name', true ); ?>
此$ custom_field_value返回“通用名称”字段的值。
使用该值,我们可以形成WP_Query。
$the_query = new WP_Query( array(
'posts_per_page'=>9,
'post_type'=>'brand-name',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'generic-name',
'value' => $custom_field_value
),
),
'paged' => get_query_var('paged') ? get_query_var('paged') : 1)
);
谢谢。