在WordPress搜索上,如何搜索来自作者meta的帖子

时间:2018-04-09 作者:Rajan Shrestha

以下代码用于搜索帖子标题和帖子内容。此外,在安装了插件“ACF:Better Search”后,该帖子还从ACF字段进行搜索,并在Search result div元素上给出搜索结果。

但现在我还想用作者姓名和其他自定义添加的作者元值搜索帖子。

【WordPress 4.9.2】

尝试了“WP Extended Search-WordPress插件”插件,但没有成功。

//用于搜索自定义帖子类型的ajax挂钩

add_action( \'wp_ajax_search_cposttype\', \'searchCposttypeByTerm\' );
add_action( \'wp_ajax_nopriv_search_cposttype\', \'searchCposttypeByTerm\' );

function searchCposttypeByTerm() {
//$authors=get_users();
$wp_query = new WP_Query(array(
    \'post_type\'=>\'cposttype\',
    \'post_status\'=>\'publish\',
    \'s\' => $_GET[\'searchTerm\']));

while ($wp_query->have_posts()) : $wp_query->the_post();
    get_template_part(\'template-parts/cposttype/cposttype-post\');
echo \'<pre>\';
                //print_r($wp_query);
                echo \'</pre>\';
endwhile;
wp_die();

}
请你帮帮我好吗。不使用插件会更好。

谢谢

1 个回复
SO网友:Greg Much

您可以从使用MySQL准备所需信息开始

SELECT * FROM `wp_usermeta` WHERE `meta_key` = "description"
例如,您可以使用定制查询的准备输出创建文件,然后在搜索框中使用jQuery*Ajax。。

我向您展示了json文件的示例:

<?php
require_once(\'../../../wp-load.php\');


$gm = array("results"  => array());
$loop = new WP_Query( array( \'post_type\' => array(\'post\', \'page\'), \'post_status\' => \'publish\') );
if ( $loop->have_posts() ): while ( $loop->have_posts() ): $loop -> the_post();
    $tmp = array(
        "title" => get_the_title(),
        "url" => get_the_permalink(),
        "text" => get_the_excerpt()
    );
    array_push($gm["results"],$tmp);
endwhile;
endif;

echo json_encode($gm);
不太可能,HERE in WP Query Author parameters 您只能获取与作者相关的帖子。

因此,最好的解决方案就是简单地查询SQL并将其输出到自定义php文件中。然后,您可以轻松地在搜索框中显示此信息:)

结束

相关推荐

向Posts表中添加一列是个好主意吗?

我正在为一个需要两种自定义帖子类型的客户制作一个自定义主题。我想将它们连接在一起(这是一个一对多连接),因此考虑在posts表中添加一列来存储连接。当然,我已经读到,我可以使用posts\\u meta表来存储一些帖子的额外信息,但公平地说,这是一种迂回的方式,尤其是如果您可以将信息存储在一列中。所以我想知道在标准的wp posts表中添加一列是否是一个好主意。