如何创建多个搜索结果页面,并将不同的表单定向到各自的结果页面?

时间:2017-03-30 10:06:42

标签: php wordpress search

我正在处理的网站上有一个复杂的设置。它使用分类法和元数据的混合来包含代表不同国家的网页。每个国家都有作者,其内容可由合着者撰写。我使用查询来处理共同作者的数组,并确保该内容出现在每个作者的页面上,尽管它不适合搜索查询。

ob_start();    
    extract(shortcode_atts(array(
        'author' => '',
        'province' => '',
    ), $atts ));

    $post = get_post();

    if(is_page('testimonials') && empty($post->post_parent)) {
        $args = array(
        'post_type' =>  'shagun_testimonials',
        'order'     =>  'DESC',
        'orderby'   =>  'date',
        'posts_per_page'    =>  -1,
        'post_status'   =>  'publish'
        );
    } else {
        if(!empty($author)) {
            $authors = get_posts(array(
                'post_type' =>  'shagun_testimonials',
                'fields' => 'ids',
                'order'     =>  'DESC',
                'orderby'   =>  'date',
                'posts_per_page'    =>  -1,
                'post_status'   =>  'publish',
                'author__in'    => explode(',',$author),
                'nopaging'  => true,
                'posts_per_archive_page' => -1
            ));
        };
        if(!empty($province)){
            $multi_author = get_posts(array(
                'post_type' => 'shagun_testimonials',
                'fields' => 'ids',
                'nopaging'  => true,
                'posts_per_archive_page' => -1,
                'meta_query' => array(
                    array(
                        'key' => 'co-author',
                        'value' => $province,
                        'compare' => 'LIKE'
                    )
                )
            ));
        };
        if(isset($authors) && isset($multi_author)) {
            $options = array_merge($authors, $multi_author);
        }
        elseif (!isset($authors)) {
            $options = $multi_author;
        } 
        elseif (!isset($multi_author)) {
            $options = $authors;
        };

现在的问题是,这些页面需要一个搜索表单来仅搜索适用于它们的内容。我的想法是,我会有一个搜索表单,将用户带到使用上述查询的页面,但之后只是添加搜索词作为附加过滤器,但我不知道如何制作它以便表单将被定向到特定搜索结果页面而不是默认模板。

1 个答案:

答案 0 :(得分:0)

我用这种方式转到不同的形式

if($count==1 && $ccdate > $nn4date ){
    //this is for var text
    $stat="已&#23450";
    //this is for var button
    $but="删除";
    //this is for var form
    $form="can.php";
    } 

现在在html中

<form action="<?php echo $form; ?>" method="post">

您也可以通过这种方式为按钮和自定义消息执行相同的操作 忽略if语句中的有趣变量我必须使用它来记住它lol