搜索结果计数但未正确显示 - Wordpress

时间:2021-03-05 16:10:08

标签: php wordpress

我的 search.php 文件有问题。我想要实现的是,当搜索结果中包含我的两种自定义帖子类型时,用户会获得指向其他(“父”)页面的链接。我现在实现的是,搜索结果被正确计算,但那些自定义帖子类型以外的结果没有正确显示(页面标题和 URL 不显示)。这是我的代码(search.php)。

<?php
/*
Template Name: Search results
The template for displaying Search Results pages.
*/
get_header();
?>
<?php
global $query_string;
wp_parse_str( $query_string, $search_query );
$search = new WP_Query( $search_query );
?>
<div class="container-fluid-wrapper">
<div class="container-fluid przewodnik bottom przewodnik-obszary-wrapper">
    <div class="row no-gutters przewodnik-wstep">
    <div class="col-xl-1 jasne-tlo">
    </div> 
    <div class="col-xl-10 jasne-tlo border-left-right no-background bottom-space search-wrapper">
        <div class="search">
            <h3 class="krok krok-przewodnik">Wyniki dla:</h3>
                <?php /* Search Count */ $allsearch = new WP_Query("s=$s&showposts=-1"); $key = wp_specialchars($s, 1); $count = $allsearch->post_count; _e(''); _e('<span class="search-terms">'); echo $key; _e('</span>'); _e(' <br> '); _e('<span class="search-number">'); _e('Liczba wyników: '); _e('</span">'); _e('<span class="bold">'); echo $count . ' '; _e('</span>'); wp_reset_query(); ?> <br>
        </div>
    <?php if ($allsearch->have_posts()) : ?>
    <?php while ($allsearch->have_posts()) : $allsearch->the_post(); ?>
        <?php
            if ($post->post_type == "zespol") {
                echo '<div class="row">
                        <div class="col-xl-5 search-result pole-zainteresowac no-background-image">
                            <a class="no-color" href="./o-nas/"> O nas </a>
                        </div>
                    </div>';        
            }
            else if ($post->post_type == "co_nowego") {
                echo '<div class="row">
                        <div class="col-xl-5 search-result pole-zainteresowac no-background-image">
                            <a class="no-color" href="./co-nowego/"> Co nowego </a>
                        </div>
                    </div>';
            }  else {
                echo '<div class="row">
                        <div class="col-xl-5 search-result pole-zainteresowac no-background-image">
                            <a class="no-color" href="<?php echo esc_url(get_permalink()); ?>"><?php the_title(); ?> </a>   
                        </div>
                    </div>';        
                } ?>
    <?php endwhile; else: ?>
<!-- 404 SEARCH -->
    <div class="404-search">
        <?php _e("Oops... We couldn't find what you were searching for. Please try again"); ?>
            <div class="row">
                <div class="col-xl-6 search-form-2">
                    <?php get_search_form(); ?> 
                </div>
                <div class="col-xl-1 szukaj-label">
                    <p>Szukaj</p>
                </div>
            </div>
    </div>
<!-- / 404 SEARCH -->

        <?php endif; ?>
    </div> <!-- end "col-xl-10 border-left-right" -->
    <div class="col-xl-1 jasne-tlo right">
        <img class="strzalka-dol-przewodnik" src="<?php echo get_stylesheet_directory_uri(); ?>/img/STRZALKA_DOL-04_cropped_long.svg" />
        </div>
    </div>  <!-- END "row przewodnik-wstep" -->
    </div> <!-- END "container przewodnik" -->
    </div> <!-- END "container-fluid-wrapper -->
    <?php get_template_part( 'template-parts/footer-menus-widgets' ); ?>
    <?php
    get_footer();

当我不尝试重定向这些自定义帖子类型时(当我不使用带有帖子类型的 if 语句时),搜索结果会正确显示。

1 个答案:

答案 0 :(得分:1)

$post 可能未在此处定义用于您的帖子类型检查...将您的 $post->post_type == "zespol" if 检查更改为:

if ( get_post_type() === "zespol" ) {
    // do something...
}else if ( get_post_type() === "co_nowego" ) {
    // do something else...
}else {
    // default to this...
}

更新

您需要针对最后一个 echo 情况修复您的 else 语句以使用如下所示的连接:

echo '<div class="row">
    <div class="col-xl-5 search-result pole-zainteresowac no-background-image">
        <a class="no-color" href='. esc_url(get_permalink()) .'">'. get_the_title() .'</a>   
    </div>
</div>';
相关问题