• 解決済 mitsuoka

    (@mitsuoka)


    Ktai Styleのテンプレートのカスタマイズについて質問です。
    フォーラム内等を検索したのですが、目的を解決できる内容にたどり着けませんでした。
    重複しておりましたら申し訳ありません。

    子ページをもつ特定のページの時(自分自身が親である時)に、子ページの内容一覧を表示したいと思っています。
    以下の通りページテンプレートの部分を変更しましたが、うまく出力できません。
    根本的な部分が分かっていないような気もするのですが、ご教示いただけたら幸いです。

    <?php if (have_posts()) : the_post(); ?>
    	<div<?php echo $ks_settings['h2_style']; ?>><h2><?php the_title(); ?></h2></div>
    	<?php ks_content(__('(more...)')); ks_link_pages();
    	ks_posts_nav_link(' | ', '<hr /><div align="center">', '</div>'); ?>
    
    <?php // 子ページ表示
    $pages = get_pages('child_of=' . $post->ID );
    foreach($pages as $page) {
        if ($page->post_parent != $post->ID) continue; ?>
        <h4><a href="<?php echo get_page_link($page->ID) ?>"><?php echo $page->post_title ?></a></h4>
        <?php $content = $page->post_content; ?>
            <div class="title-list"><?php echo $content ?></div>
    <?php
    } // 子ページ表示ここまで
    ?>
    
    	<?php else: ?>
    	<h2><?php _e('Not Found', 'ktai_style'); ?></h2>
    	<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
    	<?php endif; ?>
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • Yuriko IKEDA

    (@lilyfan)

    Ktai Style 作者です。

    おそらく、$post をグローバル宣言しておけばうまくいくと思います。このままではローカル変数としての $post をひっぱっているため、$post->ID が空になっている気がします。

    トピック投稿者 mitsuoka

    (@mitsuoka)

    lilyfan様

    大変お世話になっております!
    このような素晴らしいプラグインを無償で提供していただいている事を
    とても感謝しております。

    時間がとれず実証確認ができませんで、お返事遅くなって申し訳ありません。
    $postのグローバル宣言にて想定していた事が出来ました。
    本当にありがとうございました。

    <?php // 子ページ表示
    <strong>global $post;</strong>
    $pages = get_pages('child_of=' . $post->ID );
    foreach($pages as $page) {
        if ($page->post_parent != $post->ID) continue; ?>
        <h4><a href="<?php echo get_page_link($page->ID) ?>"><?php echo $page->post_title ?></a></h4>
        <?php $content = $page->post_content; ?>
            <div class="title-list"><?php echo $content ?></div>
    <?php
    } // 子ページ表示ここまで
    ?>
2件の返信を表示中 - 1 - 2件目 (全2件中)

トピック「Ktai Styleでページの内に子ページの一覧を表示したい」には新たに返信することはできません。