为什么这个earch.php不起作用?

时间:2011-10-26 作者:Jezthomp

此搜索。php显示上述搜索的所有结果,但不包括标题、搜索结果。。。。。。并查询查询金额;甚至没有找到搜索并打印searchform。

<?php get_header(); ?>
<?php if ( have_posts() ) : ?>

 <h1 class="page-title"><?php printf( __( \'Search Results for: %s\', \'nothing\' ), \'\' . get_search_query() . \'\' ); ?></h1>


<!--custom area--> 

<ul id="post-list">

 <?php if (have_posts()) : while (have_posts()) : the_post(); ?>


<?php
 $featured = get_post_meta($post->ID,\'_thumbnail_id\',true);
 $attachments = get_children( \'post_type=attachment&orderby=menu_order&exclude=\'.$featured.\'&post_mime_type=image&post_parent=\'.$post->ID );
 $vimeo = get_post_meta($post->ID, \'rw_post-vimeo\',true);?>
<li class="post">

<span class="entry-published">
<time datetime="<?php the_time(\'Y-m-d\')?>"><?php the_time(\'F jS, Y\') ?></time>
    <!--Start Single Image-->
<?php  get_template_part( \'includes/inc-image\' ); ?>
<?php endif; ?>
<!--End Single Image-->


<!--Start Rest Of Post Content-->
<?php  get_template_part( \'includes/inc-detail\' ); ?>
<?php endwhile; endif; ?>


<section id="pagination">
<?php wp_pagenavi(); ?> 
</section>

<!--End Rest Of Post Content-->

</li>

</ul>


<!-- end of custom area -->



<?php else : ?>
<h2><?php _e( \'Nothing Found\', \'nothing\' ); ?></h2>
<p><?php _e( \'Sorry, but nothing matched your search criteria. Please try again with some different keywords.\', \'twentyten\' ); ?></p>
<?php get_search_form(); ?>
<?php endif; ?>

<?php get_footer(); ?>
有趣的是,虽然li标签中的帖子出现在开头

<h1 class="page-title">
因此,我假设这是一个声明问题,但无法解决:(

有什么想法吗?

1 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

我发现至少有两个潜在问题:

你有if ( have_posts() ) : 两次此处:

<?php if ( have_posts() ) : ?>
<h1 class="page-title"><?php printf( __( \'Search Results for: %s\', \'nothing\' ), \'\' . get_search_query() . \'\' ); ?></h1>
这里:

<ul id="post-list">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
get_template_part() template tag 需要文件名slug, 而不是path. 因此,您可能需要使用locate_template() template tag 相反,对于这些:

尝试:

<?php  locate_template( \'includes/inc-image.php\' ); ?>
<?php  locate_template( \'includes/inc-detail.php\' ); ?>

EDIT

当我应用locate\\u模板时,它不会加载任何内容。。。

这些文件是否存在?

。。。删除其中一个if会给我一个意外的T\\u ELSEIF错误…:(

是的,因为你有一个不正确的打开/关闭else/if 建筑摆脱流浪者endif 此处:

<?php  get_template_part( \'includes/inc-image\' ); ?>
<?php endif; ?>

EDIT 2

因此,这里有一个重写,试图修复您的语法错误:

<?php get_header(); ?>

<h1 class="page-title"><?php printf( __( \'Search Results for: %s\', \'nothing\' ), \'\' . get_search_query() . \'\' ); ?></h1>

<?php if ( have_posts() ) : ?>

    <ul id="post-list">

        <?php while (have_posts()) : the_post(); ?>

            <?php
            $featured = get_post_meta($post->ID,\'_thumbnail_id\',true);
            $attachments = get_children( \'post_type=attachment&orderby=menu_order&exclude=\'.$featured.\'&post_mime_type=image&post_parent=\'.$post->ID );
            $vimeo = get_post_meta($post->ID, \'rw_post-vimeo\',true);
            ?>
            <li class="post">

                <span class="entry-published">
                <time datetime="<?php the_time(\'Y-m-d\')?>"><?php the_time(\'F jS, Y\') ?></time>
                <!--Start Single Image-->
                <?php  get_template_part( \'includes/inc-image\' ); ?>
                <!--End Single Image-->

                <!--Start Rest Of Post Content-->
                <?php  get_template_part( \'includes/inc-detail\' ); ?>

                <!--End Rest Of Post Content-->

            </li>

        <?php endwhile; ?>

    </ul>

    <section id="pagination">
    <?php wp_pagenavi(); ?> 
    </section>

<?php else : ?>

    <h2><?php _e( \'Nothing Found\', \'nothing\' ); ?></h2>
    <p><?php _e( \'Sorry, but nothing matched your search criteria. Please try again with some different keywords.\', \'twentyten\' ); ?></p>
    <?php get_search_form(); ?>

<?php endif; ?>

<?php get_footer(); ?>
验证其是否有效,然后我们将解决模板零件输出问题。

结束

相关推荐

tag search using WP_Query

我只需要找到带有标签的帖子forest gump. 我尝试过:new WP_Query(\'tag=forest+gump\');, new WP_Query(\'tag=forest gump\');. 然而,他们都会返回所有的帖子,而不仅仅是带有forest gump 标签但是,单个标记(没有空格)可以正常工作。替代方案(如普通SQL)也可以使用。入口标记行为forest gump, forrest gump, questend.