是否可以编写查询以仅从一个自定义字段中搜索数据?我有一个名为“讲座”的CPT,我只想搜索名为“关键字”的自定义字段中的数据,我有:
<?php
$args = array(
\'post_type\' => \'lectures\',
\'order\' => \'ASC\',
\'posts_per_page\' => -1,
\'meta_key\' => \'keywords\'
);
$query = new WP_Query($args);
while ( $query -> have_posts()) : $query -> the_post();
?>
但它不起作用。因此,如果有人搜索“操作性条件反射”(关键字ACF中的一个术语)。我想在结果中显示任何带有这些“关键字”(来自ACF)的CPT。我无法添加特定关键字,因为将有数百个
SO网友:Kevin
这对我很有用:
<?php
if($_GET[\'module_search\'] && !empty($_GET[\'module_search\']))
$keywords = $_GET[\'module_search\'];
?>
<!-- Set args for search of cpt -->
<?php
$args = array(
\'post_type\' => \'lectures\',
\'order\' => \'ASC\',
\'posts_per_page\' => -1,
\'meta_query\' => array(
\'relation\' => \'OR\',
array(
\'key\' => \'keywords\', // name of custom field
\'value\' => \'[[:<:]]\'.$keywords.\'[[:>:]]\', // matches exaclty "123", not just 123. This prevents a match for "1234"
\'compare\' => \'REGEXP\'
)
)
);
$query = new WP_Query($args);?>```