#未検証。「〜」は省略の意味ですー。
global $post, $page, $pages;
$hasmore = false;
//ここからループ処理
〜
the_post();
〜
the_content(); // とか get_the_content() とか
〜
$content = $pages[$page - 1];
if ( preg_match( '/<!--more(.*?)?-->/', $content, $matches ) )
$hasmore = true;
〜
//ここまでループ処理
if ( $hasmore )
get_sidebar();
kzさん
回答ありがとうございます。
経験が浅くphpもろくに理解していないため
記述内容がよくわからず理解がむずかしかったです。
sidebar.php内に下記を記述しています。
<?php if(is_category() or is_single()): ?>
ここは処理を書いてます。
<?php endif; ?>
moreがある場合にのみsidebar.php内の
<?php if(is_category() or is_single()): ?>内容<?php endif; ?>
を実行するといった場合はどう条件分岐すればよろしいでしょうか??
sidebar.php を読み込まない、ではなく
sidebar.php 内の一部を実行する、なら以下のとおり:
※more があったかどうかは category.php, single.php で判断します。
category.php, single.php を以下の *ように* 記述。
global $post, $page, $pages;
$hasmore = false;
//ここからループ処理
〜
the_post();
〜
the_content(); // とか get_the_content() とか
〜
$content = $pages[$page - 1];
if ( preg_match( '/<!--more(.*?)?-->/', $content, $matches ) )
$hasmore = true;
〜
//ここまでループ処理
〜
sidebar.php を以下の *ように* 記述。
<?php
if ( $hasmore ) :
if(is_category() or is_single()):
?>内容<?php
endif;
endif;
?>
で OK◎
kzさん
ご回答ありがとうございます。
すみません、何度か試してみたのですがうまく動作しないです。
ちょっと質問なのですが、下記の記述は<?php ?>などで囲む必要はありますでしょうか?
投稿ページで実装をしたいのですが、その際には$pages[$page – 1];を書き換える必要はありますでしょうか??
global $post, $page, $pages;
$hasmore = false;
//ここからループ処理
〜
the_post();
〜
the_content(); // とか get_the_content() とか
〜
$content = $pages[$page - 1];
if ( preg_match( '/<!--more(.*?)?-->/', $content, $matches ) )
$hasmore = true;
〜
//ここまでループ処理
〜
現状category.phpには下記のように記述しております。
<?php if(have_posts()):while(have_posts()):the_post(); ?>
<div class="coArea">
<h3><?php the_title(); ?></h3>
<?php the_content(); ?>
</div>
<?php endwhile;endif; ?>
category.phpを下記を試し、
<?php
global $post, $page, $pages;
$hasmore = false;
?>
<?php if(have_posts()):while(have_posts()):the_post(); ?>
<div>
<h3><?php the_title(); ?></h3>
<?php the_content(); ?>
<?php
$content = $pages[$page - 1];
if ( preg_match( '/<!--more(.*?)?-->/', $content, $matches ) )
$hasmore = true;
?>
</div>
<?php endwhile;endif; ?>
sidebar.phpに
<?php
if ( $hasmore ) :
if(is_category() or is_single()):
?>内容<?php
endif;
endif;
?>
を追記してみましたがうまく動きませんでした。
基本的な部分で間違っていますでしょうか??
何度もどうもお手数おかけします。
sidebar.phpに
<?php
global $hasmore;
if ( $hasmore ) :
if(is_category() || is_single()):
?>内容<?php
endif;
endif;
?>
でどうでしょー
kzさん
試してみたところ、希望通りの動作になりました!
お忙しいところ何度もご回答いただきありがとございました^^