0

以下は箱から出してすぐには機能せず、ページの読み込みに永遠に時間がかかります。多くのApacheプロセスが作成され、メモリとCPUが狂ったように消費されます。

<?php

/**
 * Template Name: Custom forum index
 */

get_header();


?>
            <div id="content" role="main">

                <?php //do_action( 'bbp_template_notices' ); ?>

                <?php
                $args = array(
                   'post_type' => 'forum',
                   'post_status' => 'publish',
                   //'meta_key' => 'age',
                   'orderby' => 'title',
                   'order' => 'ASC',
                   // 'meta_query' => array(
                        // array(
                           // 'key' => '_bbp_topic_count'
                        // ),
                        // array(
                            // 'key' => '_bbp_reply_count'
                        // ),
                        // array(
                            // 'key' => '_bbp_last_active_time'
                        // ),
                        // array(
                            // 'key' => '_bbp_last_topic_id'
                        // )
                    // )
                );
                $query = new WP_Query($args);

                while ($query->have_posts()) : the_post(); ?>

                    <div id="forum-front" class="bbp-forum-front">
                        <h1 class="entry-title"><?php the_title(); ?></h1>
                        <div class="entry-content">

                            <?php //the_content(); ?>

                            <?php //bbp_get_template_part( 'content', 'archive-forum' ); ?>

                        </div>
                    </div><!-- #forum-front -->

                <?php endwhile; ?>

            </div><!-- #content -->

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

根本的な動機は、フォーラムが名前に基づいてアルファベット順に配置されているカスタムフォーラムインデックスページを作成しようとしていることです。不思議なことに、そのような機能はbbPressには付属していません

上記のように、WP_Query()を使用して、「フォーラム」タイプの投稿をループしようとしました。そのようなアプローチで何がうまくいかなかったのでしょうか?ここでWP_Query()を使用するには何をする必要がありますか?

4

2 に答える 2

0

カスタムを使用しているため、キーワードの後WP_Queryに​​指定する必要があります。Wordpressのドキュメントによると、「この関数は、カスタムループで使用されていた以前のクエリを破棄します。条件付きタグが期待どおりに機能するように、ループの後に関数を呼び出す必要がありますwp_reset_query();endwhile;

于 2012-11-20T08:15:11.140 に答える
0

何が悪かったのですかthe_post()。する必要があり$query->the_post()ます; 代わりは。

したがって、正しいループは次のようになります

<?php  
//...  
while ($query->have_posts()) : $query->the_post(); ?>

                <div id="forum-front" class="bbp-forum-front">
                    <h1 class="entry-title"><?php the_title(); ?></h1>
                    <div class="entry-content">

                        <?php //the_content(); ?>

                        <?php //bbp_get_template_part( 'content', 'archive-forum' ); ?>

                    </div>
                </div><!-- #forum-front -->

            <?php endwhile; ?>
于 2012-11-21T04:45:41.060 に答える