从自定义搜索表单中获取数据并在页面中显示结果(wordpress)

时间:2017-06-01 20:46:39

标签: php wordpress

我遇到问题,要在页面中显示搜索表单的结果。

我在header.php中有一个自定义搜索表单:

<form action="<?php echo site_url('/pagesearch/')?>" method="get" id="adminbarsearch">
    <input type="search" id="place"  name="mydata" />
    <input type="submit" class="adminbar-button" value="Rechercher"/>*/?>
</form>

当用户提交表单时,我通过我的functions.php中的代码检索数据并对其进行修改:

if ((isset($_GET['mydata'])) && (!empty($_GET['mydata']))){
    $q = sanitize_text_field($_GET['mydata']);      
    $search_posts_id = array();

    $search_args = array(
            's' => $q,
            'fields' => array('ids', 'post_type'),
            'post_type' => 'my_custom_posttype'
    );
    $search_query = new WP_Query($search_args);

    if ( $search_query->have_posts() ) :
            $search_posts_id = array_unique(wp_list_pluck( $search_query->posts, 'post_title', 'id' ));
            $search_posts_id = implode( ',', $search_posts_id );
    else :
            $search_posts_id = implode( ',', $search_posts_id );
    endif;
    wp_reset_postdata(); 

    echo $search_posts_id;

问题是我想在&#34; pagesearch&#34;中显示$search_posts_id的结果。我网站的页面。

当我使用上面的代码时,它会显示在页面中,但是在页眉和页眉之前,而不是在页眉和页脚之间的内容中。

我不知道如何正确地将这些数据放入内容中。

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

那是因为你正在回复你的functions.php文件 - 它在主题的标题和内容呈现之前运行,所以它只是在其他所有内容之前输出。

您需要采取不同的方法,例如可能在the_content()调用之前将此代码放在page.php(或您想要的任何模板)中,或者甚至可能创建自定义短代码以显示此内容无论你想要什么。

如果您可以提供更多信息,请详细说明您希望这些结果显示在哪里,我们可能会进一步提供帮助。祝你好运!