Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 调整wordpress搜索以搜索多个字段_Php_Wordpress - Fatal编程技术网

Php 调整wordpress搜索以搜索多个字段

Php 调整wordpress搜索以搜索多个字段,php,wordpress,Php,Wordpress,我正在尝试调整现有的搜索,以便不仅可以搜索员工姓名,还可以搜索他们的头衔(工作角色) 目前,以下是表单方法: <form method="get" action="<?php echo get_post_type_archive_link('staff'); ?>" class="search" data-behavior="search"> 此函数与搜索Wordpress数据库无关。相反,它是呼应出一个url,告诉表单在哪里提交。您需要了解的是表单提交到该url后会发

我正在尝试调整现有的搜索,以便不仅可以搜索员工姓名,还可以搜索他们的头衔(工作角色)

目前,以下是表单方法:

<form method="get" action="<?php echo get_post_type_archive_link('staff'); ?>" class="search" data-behavior="search">

此函数与搜索Wordpress数据库无关。相反,它是呼应出一个url,告诉表单在哪里提交。您需要了解的是表单提交到该url后会发生什么。有一些用于搜索的标准Wordpress函数和过滤器,但我猜根据您在这里展示的内容,代码中的某些地方也有一些自定义功能,它以某种方式使用单词“staff”执行搜索


这个函数在哪里?这是一个插件吗?主题?它还有其他功能吗?我建议在该函数的常规区域中查找一些sql查询,并将该函数粘贴到此处供我们查看。

我不知道我是否理解正确,但会对标题、内容以及自定义字段(如果有)进行自定义搜索


这个函数目前做什么?我不是一个WP开发者,但我想知道,如果他们了解你所拥有的和你想要的之间的区别,他们是否会发现这个问题更容易回答。谢谢!这是问题的一部分。我最初并没有写这段代码,而写这段代码的人现在已经离开了。这个函数是与搜索操作相关的,这就是我所知道的。目前正在发生的是,页面顶部有一个搜索表单,后面是员工列表和他们个人资料的链接。我需要让它工作,以便搜索工作不仅为姓名,而且还搜索标题(工作角色),如果有人想搜索具有特定工作的所有人。我想补充一点,如果当前代码可以添加到版本控制(或至少复制)然后,您可以添加
echo
语句来跟踪主题/插件等中的执行情况,直到找到搜索功能为止。那么至少你会知道该修改哪一位!
function get_post_type_archive_link( $post_type ) {
    global $wp_rewrite;
    if ( ! $post_type_obj = get_post_type_object( $post_type ) )
        return false;

    if ( ! $post_type_obj->has_archive )
        return false;

    if ( get_option( 'permalink_structure' ) && is_array( $post_type_obj->rewrite ) ) {
        $struct = ( true === $post_type_obj->has_archive ) ? $post_type_obj->rewrite['slug'] : $post_type_obj->has_archive;
        if ( $post_type_obj->rewrite['with_front'] )
            $struct = $wp_rewrite->front . $struct;
        else
            $struct = $wp_rewrite->root . $struct;
        $link = home_url( user_trailingslashit( $struct, 'post_type_archive' ) );
    } else {
        $link = home_url( '?post_type=' . $post_type );
    }

    return apply_filters( 'post_type_archive_link', $link, $post_type );
}
  <?php //LOOP PARA BUSCA COM TODOS CUSTOM FIELD
  $keyword = get_search_query();
  $keyword = '%' . like_escape( $keyword ) . '%'; // Thanks Manny Fleurmond
 // SEARCH FROM ALL CUSTOM FIELDS
$post_ids_meta = $wpdb->get_col( $wpdb->prepare( "
ALTER TABLE wp_posts ADD INDEX (postmeta)
SELECT DISTINCT post_id FROM {$wpdb->postmeta}
WHERE meta_value LIKE '%s'
", $keyword ) );

// SEARCH FOR TITLE AND CONTENT
$post_ids_post = $wpdb->get_col( $wpdb->prepare( "
ALTER TABLE wp_post s ADD INDEX (posts);
SELECT DISTINCT ID FROM {$wpdb->posts}
WHERE post_title LIKE '%s'
OR post_content LIKE '%s'
", $keyword, $keyword ) );
$post_ids = array_merge( $post_ids_meta, $post_ids_post );

$wpq = array(
'taxonomy'=>'segmento',

'post_status' => 'publish',
'post_type' => 'CUSTOM-POST-TYPE',
'paged' => get_query_var('paged'),
'post__in' => $post_ids,
'order' => 'ASC',

  );

  query_posts($wpq);