web-dev-qa-db-ja.com

is_category()の代わりに表示されているis_archive()コンテンツ

私の問題:

http://mysite/category/mycategoryを参照すると、if (is_category())のコンテンツが表示されず、代わりにif(is_archive())が表示されます。

私のコード:

archive.php

<?php include('includes/resultlist.php')?>

search.php

<?php include('includes/resultlist.php')?>

includes/resultlist.php

<?php get_header(); ?>

            <div class="main">

<?php if (is_archive()) { ?>

            <h1>Artigos publicados em <?php single_month_title(' '); ?></h1>

<?php } else if (is_search()) { ?>

            <h1>Resultados para "<?php the_search_query(); ?>"</h1>

<?php } else if (is_category()) { ?>

            <h1>Resultados para categoria "<?php the_category(); ?>"</h1>

<?php }

if ( have_posts() ) while (have_posts()) { the_post(); ?>

                <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
                por <span class="date"><?php the_author(); ?></span> em 
                <span class="date"><?php the_date(); ?></span>

                <p><?php echo get_the_excerpt(); ?> <a href="<?php the_permalink(); ?>">Leia mais</a></p>

             <?php } 

else {?> 

            <h2>Nada encontrado</h2>
            <p>Desculpe, não encontramos o que você procurava!</p>

<?php }

include('pagination.php');

?>

            </div><!-- /main -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>

私が試したこと:

<?php include('includes/resultlist.php')?>という内容のcategory.phpファイルを作成しましたが、問題は解決しません。 category.phpの最後にガベージテキストを含めて、レンダリングされたページの最後に表示されるので、ファイルが呼び出されていると思います。

私の環境:

Apache、mysql、phpがインストールされたLAMP Ubuntu 64ビットをapt-get経由でデフォルトのオプションでインストール。

2

カテゴリページはアーカイブページです 。したがって、is_archive()はカテゴリページでreturn trueになります。さらにis_category()をプッシュダウンするか、is_category()の前にis_archive()を使用してください。

こんな感じ

if ( is_search() )
{
    // Search Result content
}
elseif( is_category() )
{
    // Category archive content
}
// check for tag, taxonomy, date before 
elseif ( is_archive() )
{
    // Default archive content for *every* type of archive
}
else
{
    // Default content for non-archives
}
5
Sisir