【问题标题】:Get data from custom search form and display results in a page (wordpress)从自定义搜索表单中获取数据并在页面中显示结果(wordpress)
【发布时间】:2017-06-01 20:46:38
【问题描述】:

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

我的 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;

问题是我想在我网站的“pagesearch”页面中显示$search_posts_id的结果。

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

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

非常感谢您的帮助!

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    那是因为你正在从你的 functions.php 文件中回显——它在主题的标题和内容渲染之前运行,所以它只会在其他所有内容之前输出。

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

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

    【讨论】:

    • 非常感谢,我之前试过了,还是不行,我又试了一次,效果很好。我第一次应该做错了。
    猜你喜欢
    • 2019-02-25
    • 1970-01-01
    • 2012-08-06
    • 1970-01-01
    • 2021-02-03
    • 1970-01-01
    • 1970-01-01
    • 2016-08-15
    • 1970-01-01
    相关资源
    最近更新 更多