0

難しいようです。 ワードプレスの投稿ページテンプレートに3つ以上の投稿がある場合は、特定のテキストを表示する必要があります。関連するカテゴリのポストの総数は3ここでワードプレスで同じカテゴリ内の関連記事が3件以上表示されている場合

以上であるかどうかを検出するのに十分に動的であるべきである

(ループsingle.php)は、カテゴリテンプレートにうまく機能Iが見出さコードでありますページ(archive.php)がありますが、投稿テンプレートで使用するとそれが壊れてしまいます。

<?php 
$count = 1; 
if (have_posts()) : while(have_posts()): the_post(); ?> 

<!-- Less than 3 post - nothing shown at all --> 

<?php $count++; 
    endwhile; endif; ?> 
<?php if ($count > '3') { ?> 

<div> This line shown when 3 or more posts are in current post category</div> 

<?php } ?> 

注:これはloop-single.phpテンプレートファイルで機能するようにしています。

すべてのヘルプは大 が


ソリューションの上に含まれるように更新されたコードをありがとう、いただければ幸いです。私はいくつかの構文エラーを修正しますが、その今T-STRINGエラーをスロー:解析エラー:構文エラー、予期しないT_STRING

ここ

私の完全なページコードされています。これは、あなたが

<?php /* Start loop */ ?> 
<?php while (have_posts()) : the_post(); ?> 
<?php roots_post_before(); ?> 
<article <?php post_class() ?> id="post-<?php the_ID(); ?>"> 
<?php roots_post_inside_before(); ?> 
<header> 
<h1 class="entry-title"><?php the_title(); ?></h1> 

<!-- POST DATE STAMP --> 
<div class="post-top"> 
<div class="date-stamp"> 
<b><?php the_time('M d'); ?></b> 
</div> 
</header> 

<div class="entry-content"> 
<?php the_content(); ?> 
</div> 

<footer> 
<hr /> 


<?php 
$cat = get_query_var('cat'); 
$posts = get_posts(array('category' => $cat)); 
if(count($posts) >= 3) 
{ 

<!-- POST FOOTER RELATED CONTENT (2 HORIZONTAL) --> 
<h5>Featured: <?php $cats=get_the_category(); echo $cats[0]->cat_name; ?></h5> 
<div id="foot-container"> 
<?php echo do_shortcode("[catlist categorypage=yes comments=yes numberposts=2 class=horizontal-2 offset=2 orderby=date order=desc thumbnail=yes thumbnail_size=75 thumbnail_class=footer-thumb title_tag=p title_class=footer-link comments_tag=p  comments_class=comment-count]"); ?> 
<div style="clear:both;"></div> 
</div> 
<hr /> 

} 
else 
{ 
Why hello there LESS than three 
} 
?> 



</footer> 
<?php comments_template(); ?> 
<?php roots_post_inside_after(); ?> 
</article> 
<?php roots_post_after(); ?> 
<?php endwhile; /* End loop */ ?> 
+0

このテキストを単一の投稿(つまり:single.php)で生成しようとしていますか?または複数の投稿を生成するページ? – maiorano84

+0

申し訳ありませんが、これはsingle-loop.phpテンプレートファイルであることを含めるために上記をアップスタットしました。 – snooker841

答えて

1

始める必要があります。

<?php 
$cat = get_query_var('cat'); 
$posts = get_posts(array('category' => $cat)); 
if(count($posts) >= 3) 
{ 
    //CODE EXECUTED IF THREE OR MORE POSTS EXIST IN CURRENT CATEGORY 
} 
else 
{ 
    //CODE EXECUTED IF LESS THAN THREE POSTS EXIST IN CURRENT CATEGORY 
} 
?> 

EXTRA INFO:あなたのループが一つだけ反復を行っていたので、それが失敗した理由でした。単一の投稿はループを2回以上通過しません。なぜなら....それは単一の投稿です。このアプローチがしていることは、既存のカテゴリを取り、一致するカテゴリのすべてのWordpress投稿を照会することです。 PHPのcount関数を使うと、与えられたパラメータで見つかった投稿の正確な数を得ることができます。

警告の単語:上記のスクリプトは、一致するカテゴリのすべての投稿を見つけることはありません。そのカテゴリの最新の5つのものだけ。 CODE TO

$posts = get_posts(array('category' => $cat, 'numberposts' => -1)); 

UPDATES:この行:

<article <?php post_class(); ?> id="post-<?php the_ID(); ?>"> //missing semicolon after post_class() 

そして、このブロック:

<?php 
$cats=get_the_category(); 
$posts = get_posts(array('category' => $cats[0]->cat_ID)); 
if(count($posts) >= 3) 
{ 
?> 
<!-- POST FOOTER RELATED CONTENT (2 HORIZONTAL) --> 
<h5>Featured: <?php echo $cats[0]->cat_name; ?></h5> 
<div id="foot-container"> 
<?php echo do_shortcode("[catlist categorypage=yes comments=yes numberposts=2 class=horizontal-2 offset=2 orderby=date order=desc thumbnail=yes thumbnail_size=75 thumbnail_class=footer-thumb title_tag=p title_class=footer-link comments_tag=p comments_class=comment-count]"); ?> 
<div style="clear:both;"></div> 
</div> 
<hr /> 
<?php 
} 
else 
{ 
echo 'Why hello there LESS than three'; 
} 
?> 
あなたは、一致するすべての投稿の実際の合計をしたい場合は、以下の1行を変更
+0

hmmm loop-single.phpで上記のコードを実装した後に投稿を表示しようとすると、エラーが発生しているようです。エラーは次のとおりです。構文解析エラー:予期しない構文エラー '<' – snooker841

+0

@ snooker841コードを更新してスレッドに追加しました。 – snooker841

+0

コードの変更を確認します。あなたがコメントに示したところでセミコロンが不足していて、PHPコードブロック内でHTMLを生成しようとしていました。これがあなたのすべてのエラーをカバーしているかどうか教えてください。そうでない場合は、あなたが見ているかもしれない他のものを投稿してください。 – maiorano84

関連する問題