0

我正在尝试为我的 wordpress 网站创建两个简码,允许我使用搜索表单并在同一页面上打印结果,而无需 wordpress 本身提供的基本搜索“表单”。除了一个小问题外,此解决方案似乎有效。如果使用不存在的字符(或超过 2/3 位)执行搜索,我会收到 404 错误。

// functions.php

function custom_search_form() {
    ob_start(); ?>    
    <form method="get" action="search/">
        <div class="custom-form">
            <label for="s">Search for:</label>
            <input type="text" value="" name="s" id="s" />
            <input type="hidden" value="webdev" name="host" id="host" />
            <input type="submit" id="searchsubmit" value="Search" />
        </div>
    </form>    
<?php return ob_get_clean(); }
add_shortcode( 'webdev_search_form', 'custom_search_form' );

function webdev_search_data() {
    if(isset($_GET['host']) && $_GET['host'] == 'webdev'){
        ob_start();
        $args = array (
            's' => $_GET['s'],
            'post_type' => array('sfwd-courses','sfwd-topic'),
            'post_status' => 'publish',
        );
        $query = new WP_Query($args);
        if ($query->have_posts()){
            while ($query->have_posts()) {
                $query->the_post(); ?>
                <p class="color00394B"><?php echo the_title(); ?></p>
        <?php }
        } else { ?>
            <p class="color00394B">Nothing!</p>
        <?php } wp_reset_postdata();
        return ob_get_clean();
    } else {
        return null;
    }
}
add_shortcode( 'webdev_search_data', 'webdev_search_data' );

这是我的 Yootheme Builder 源

[webdev_search_form]
[webdev_search_data]

有没有人有任何解决方案?谢谢你。亚历克斯

4

0 回答 0