web-dev-qa-db-ja.com

複数のループを使用すると検索ウィジェットが壊れる

WP_Queryオブジェクトを介して2つのループを使用するワードプレスのテンプレートを作成しました。それ以外はすべてうまくいきます 検索ウィジェット。私は狂人のようにグーグルで今3日間私の髪の毛を引き出してきたが、解決策を見つけることができませんでした。例えば私の 検索ボックス 私はタイプする: 最初の猫 (それは "猫"カテゴリ内の私の記事の名前と内容です)そして検索をクリックすると何も起こりません。

奇妙なことはこれです:私は他の2つのループの上に "通常の"(メインループ)を作成した場合 検索ウィジェット WORKS、しかし問題は今私の "普通の"ということです (メインループ) 見せている すべて 私の他の2つのループからの投稿。
誰かが私を手助けしたり、これを解決する方法を提案してもらえますか?
私の仕事用以外の検索ウィジェットをチェックしたい場合は
Index.php このようになります:

 <?php get_header(); ?>
<?php get_sidebar('Main Sidebar'); ?>   
<div id="blogwrapper">  
<div id="blog">  
    <?php if (have_posts()) : ?>        
    <?php                             
    $paged1 = isset( $_GET['paged1'] ) ? (int) $_GET['paged1'] : 1;
    $paged2 = isset( $_GET['paged2'] ) ? (int) $_GET['paged2'] : 1;
    $args=array(

    'category_name' => 'cats',
    'paged' => $paged1,
    'posts_per_page' => 2,
    'order' => 'DESC'
     );
     $temp = $wp_query;
     $wp_query= null;
     $wp_query = new WP_Query($args);
     while ( $wp_query->have_posts() ) : $wp_query->the_post();
     ?>     
    <div class="post">  
    <div class="post_title">
    <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
    </div>
        <div class="entry"> 

        <!--< ?php the_meta(); ?>-->

            <?php the_post_thumbnail(); ?>
            <?php the_content('Read on...'); ?>

            <p class="postmetadata">
            <?php _e('Filed under&#58;'); ?> <br/><?php the_category(', ') ?> <?php _e('by'); ?> <?php  the_author(); ?><br />
            <?php comments_popup_link('No Comments &#187;', '1 Comment &#187;', '% Comments &#187;'); ?> <?php edit_post_link('Edit', ' &#124; ', ''); ?>
            </p>
        </div>          
    </div>
    <?php endwhile;?>
    <?php else : ?>
    <h2>Not Found</h2>
    <p>Sorry, but you are looking for something that isn't here.</p>
    <?php endif; ?>
    <div class="navigation">
    <?php
     $pag_args1 = array(
        'format'  => '?paged1=%#%',
        'current' => $paged1,       
        'total'   => $wp_query->max_num_pages,      
        'add_args' => array( 'paged2' => $paged2 )
    );
    echo paginate_links( $pag_args1 );
    ?>
    </div>      
    <?php
$wp_query = null;
$wp_query = $temp;
wp_reset_postdata();
?>
    </div><!--/blog-->          
    <div id="blogs">    
    <?php            
$args2=array(

'category_name' => 'dogs',
'paged' => $paged2,
'posts_per_page' => 2
);
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query($args2);
while ( $wp_query->have_posts() ) : $wp_query->the_post();
?>
<div class="post">      
    <div class="post_title">
    <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
    </div>
        <div class="entry"> 
            <?php the_post_thumbnail(); ?>
            <?php the_content('Read on...'); ?>
            <p class="postmetadata">
            <?php _e('Filed under&#58;'); ?> <?php the_category(', ') ?> <?php _e('by'); ?> <?php  the_author(); ?><br />
            <?php comments_popup_link('No Comments &#187;', '1 Comment &#187;', '% Comments &#187;'); ?> <?php edit_post_link('Edit', ' &#124; ', ''); ?>
            </p>
        </div>          
    </div>
    <?php endwhile;?>       
    <div class="navigation">        
    <?php
       $pag_args2 = array(
        'format'  => '?paged2=%#%',
        'current' => $paged2,
        'total'   => $wp_query->max_num_pages,
        'add_args' => array( 'paged1' => $paged1 )
    );
    echo paginate_links( $pag_args2 );
    ?>
    </div>      
    <?php
$wp_query = null;
$wp_query = $temp;
wp_reset_postdata();
?>              
    </div>
     </div><!--blogswrapper-->
   <?php get_footer(); ?>

修正済み Index.php メインループでちょっとうまくいく(メインループは他の2つのループからのすべての投稿を表示するが、検索ウィジェットはWORKS ..)

 <?php get_header(); ?>
<?php get_sidebar('Main Sidebar'); ?>   
<div id="blogwrapper"> 
    <div id="blog">
       //Now Search Widget is WORKING but its's showing posts from 
       //other TWO LOOPS so it looks like a BIG mess:( 
    <?php if(have_posts()) : ?><?php while(have_posts()) : the_post(); ?>

    <div class="post">
    <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>

        <div class="entry"> 
            <?php the_post_thumbnail(); ?>
            <?php the_content(); ?>

            <p class="postmetadata">
            <?php _e('Filed under&#58;'); ?> <?php the_category(', ') ?> <?php _e('by'); ?> <?php  the_author(); ?><br />
            <?php comments_popup_link('No Comments &#187;', '1 Comment &#187;', '% Comments &#187;'); ?> <?php edit_post_link('Edit', ' &#124; ', ''); ?>
            </p>

        </div>
    </div>

    <?php endwhile; ?>

    <div class="navigation">
    <?php posts_nav_link(); ?>
    </div>

    <?php endif; ?>
</div>  
<div id="blog">  
    <?php if (have_posts()) : ?>        
    <?php                             
    $paged1 = isset( $_GET['paged1'] ) ? (int) $_GET['paged1'] : 1;
    $paged2 = isset( $_GET['paged2'] ) ? (int) $_GET['paged2'] : 1;
    $args=array(

    'category_name' => 'cats',
    'paged' => $paged1,
    'posts_per_page' => 2,
    'order' => 'DESC'
     );
     $temp = $wp_query;
     $wp_query= null;
     $wp_query = new WP_Query($args);
     while ( $wp_query->have_posts() ) : $wp_query->the_post();
     ?>     
    <div class="post">  
    <div class="post_title">
    <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
    </div>
        <div class="entry"> 

        <!--< ?php the_meta(); ?>-->

            <?php the_post_thumbnail(); ?>
            <?php the_content('Read on...'); ?>

            <p class="postmetadata">
            <?php _e('Filed under&#58;'); ?> <br/><?php the_category(', ') ?> <?php _e('by'); ?> <?php  the_author(); ?><br />
            <?php comments_popup_link('No Comments &#187;', '1 Comment &#187;', '% Comments &#187;'); ?> <?php edit_post_link('Edit', ' &#124; ', ''); ?>
            </p>
        </div>          
    </div>
    <?php endwhile;?>
    <?php else : ?>
    <h2>Not Found</h2>
    <p>Sorry, but you are looking for something that isn't here.</p>
    <?php endif; ?>
    <div class="navigation">
    <?php
     $pag_args1 = array(
        'format'  => '?paged1=%#%',
        'current' => $paged1,       
        'total'   => $wp_query->max_num_pages,      
        'add_args' => array( 'paged2' => $paged2 )
    );
    echo paginate_links( $pag_args1 );
    ?>
    </div>      
    <?php
$wp_query = null;
$wp_query = $temp;
wp_reset_postdata();
?>
    </div><!--/blog-->          
    <div id="blogs">    
    <?php            
$args2=array(

'category_name' => 'dogs',
'paged' => $paged2,
'posts_per_page' => 2
);
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query($args2);
while ( $wp_query->have_posts() ) : $wp_query->the_post();
?>
<div class="post">      
    <div class="post_title">
    <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
    </div>
        <div class="entry"> 
            <?php the_post_thumbnail(); ?>
            <?php the_content('Read on...'); ?>
            <p class="postmetadata">
            <?php _e('Filed under&#58;'); ?> <?php the_category(', ') ?> <?php _e('by'); ?> <?php  the_author(); ?><br />
            <?php comments_popup_link('No Comments &#187;', '1 Comment &#187;', '% Comments &#187;'); ?> <?php edit_post_link('Edit', ' &#124; ', ''); ?>
            </p>
        </div>          
    </div>
    <?php endwhile;?>       
    <div class="navigation">        
    <?php
       $pag_args2 = array(
        'format'  => '?paged2=%#%',
        'current' => $paged2,
        'total'   => $wp_query->max_num_pages,
        'add_args' => array( 'paged1' => $paged1 )
    );
    echo paginate_links( $pag_args2 );
    ?>
    </div>      
    <?php
$wp_query = null;
$wp_query = $temp;
wp_reset_postdata();
?>              
    </div>
     </div><!--blogswrapper-->
   <?php get_footer(); ?>
3
Dejo Dekic

誰かが私を撃ってください...これは私が開発した最初のテーマなので、私は私が必要なことを知りませんでした search.php 私のフォームが機能するために!とにかくsearch.phpを作成してThe Loopを挿入しました。テーマの中にそのファイルをコピーした後、検索フォームは魅力のように機能しました。
これが他の誰かに役立つことを願っています:)
私のsearch.php このようになります:

<?php
/**
* The template for displaying Search Results pages.
*
* 
* 
* 
*/
    get_header(); ?>
<div id="blog">
    <?php if(have_posts()) : ?><?php while(have_posts()) : the_post(); ?>
    <div class="post">
    <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
        <div class="entry"> 
            <?php the_post_thumbnail(); ?>
            <?php the_content(); ?>
            <p class="postmetadata">
            <?php _e('Filed under&#58;'); ?> <?php the_category(', ') ?> <?php _e('by'); ?> <?php  the_author(); ?><br />
            <?php comments_popup_link('No Comments &#187;', '1 Comment &#187;', '% Comments &#187;'); ?> <?php edit_post_link('Edit', ' &#124; ', ''); ?>
            </p>
        </div>
    </div>
    <?php endwhile; ?>
    <div class="navigation">
    <?php posts_nav_link(); ?>
    </div>
    <?php endif; ?>
    </div>
0
Dejo Dekic