我假设您正在尝试这样做:
$artist_name = get_post_meta(get_the_ID(), "artist_name", true);
$args = array(
\'post_type\' => array(\'songs\'),
\'meta_key\' => $artist_name,
);
$related = new WP_Query($args);
在你的问题中,你说你想要的帖子“具有相同的
value 上面的代码不会搜索与关键字关联的值,而是搜索与艺术家匹配的关键字名称。请尝试:
$artist_name = get_post_meta(get_the_ID(), "artist_name", true);
var_dump($artist_name);
$args = array(
\'post_type\' => array(\'songs\'),
\'meta_key\' => $artist_name,
);
$related = new WP_Query($args);
var_dump($related->request);
你应该看看发生了什么。
你想要的是这样的:
$artist_name = get_post_meta(get_the_ID(), "artist_name", true);
$args = array(
\'post_type\' => array(\'songs\'),
\'meta_key\' => \'artist_name\',
\'meta_value\' => $artist_name,
);
$related = new WP_Query($args);
或者更复杂但更灵活
meta_query
:
$artist_name = get_post_meta(get_the_ID(), "artist_name", true);
$args = array(
\'post_type\' => array(\'songs\'),
\'meta_query\' => array(
array(
\'key\' => \'artist_name\',
\'value\' => $artist_name,
)
)
);
$related = new WP_Query($args);
我会倾向于
meta_query
因为它很好地封装了相关的“元”参数
allows for more options.
当然,您必须循环返回结果才能返回任何有用的内容。例如:
if ($related->have_posts()) {
while ($related->have_posts()) {
$related->the_post();
the_title();
// etc
}
}