0

この質問 (および回答) のコードを使用して、ネストされた年/月/投稿のタイトル アーカイブ メニューを作成しようとしています: Nested Year/Month/Post title archive

残念ながら、コードは機能していません (年と月は表示されますが、投稿のタイトルの下には何も表示されません)。私が間違っているかもしれないことは何ですか?

<div class="blog-list-archive">

<?php
/**/
$years = $wpdb->get_col( "SELECT DISTINCT YEAR(post_date)
FROM $wpdb->posts WHERE post_status = 'publish'
AND post_type = 'post' ORDER BY post_date DESC");
foreach($years as $year) :
?>
<li><a href="JavaScript:void()"><?php echo $year; ?></a>

    <ul class="archive-sub-menu">
        <?    $months = $wpdb->get_col("SELECT DISTINCT MONTH(post_date)
        FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'post'
        AND YEAR(post_date) = '".$year."' ORDER BY post_date DESC");
        foreach($months as $month) :
        ?>
            <li><a href="<?php echo get_month_link($year, $month); ?>"><?php echo date( 'F', mktime(0, 0, 0, $month) );?></a>

                <ul class="archive-sub-menu">

                    <?  global $wpdb; $sposts = $wpdb->get_col( "SELECT ID 
                        FROM $wpdb->posts WHERE MONTH(post_date) = '$month'
                        AND YEAR(post_date) =  '$year' AND post_status = 'publish'
                        AND 'post_type' = 'post' ORDER BY post_date DESC" );
                        foreach( $sposts as $spost ) {
                    ?>
                        <li><a href="<?php echo get_permalink( $spost ); ?>"><?php echo get_the_title( $spost ); ?></a></li>

                        <?php } endforeach; ?>
                </ul>

            </li>

        <?php endforeach;?>

    </ul>

</li>

<?php endforeach; ?>

4

1 に答える 1

1

このループ:

foreach( $sposts as $spost ) {
?>
    <li><a href="<?php echo get_permalink( $spost ); ?>"><?php echo get_the_title( $spost ); ?></a></li>

<?php } endforeach; ?>

私には奇妙に見えます。中括弧を使用する場合は必要ありませんendforeach。一貫性を保つために使用する場合endforeachは、他のループで行ったように、コロンを使用し、中括弧は使用しません。

于 2013-02-28T22:04:16.163 に答える