3

シナリオ:サイドバーに折りたたみ可能なパネルを作成し、すべてのカテゴリをDIVとして表示し、それらのカテゴリDIVのすべての投稿リンクを表示しています。十分に単純です。すべてのカテゴリを取得し、すべてのカテゴリをget_categories('orderby=name&order=ASC')ループして、各カテゴリのすべての投稿を取得しました。

問題:コードget_posts('nopaging=1&category='.$category->cat_ID)は私にすべての投稿を提供しますが、WITHcontentやその他のものも提供します。すべて、私が欲しいのは投稿のパーマリンクです。それでおしまい。get_posts20以上のカテゴリに約1000の投稿があるため、使用すると大きなオーバーヘッドが発生すると思います。

解決策:パーマリンクがあり、他のものがなく、特にコンテンツが最大のオーバーヘッドであるため、カテゴリ内のすべての投稿を取得できる関数またはコード。

4

2 に答える 2

4

カスタムクエリを使用して、必要なものを正確に抽出することを検討してください: http://codex.wordpress.org/Displaying_Posts_Using_a_Custom_Select_Query

クエリを選択すると、WordPress で互いにオーバーライドし始めると楽しい落とし穴になる可能性があるため、カスタム呼び出しが終了した後に wp_reset_query() を使用することもできます: http://codex.wordpress.org/Function_Reference/wp_reset_query

コメントの後に編集: wp_term_relationships と wp_posts の間の結合を使用する必要があります。

まったく正直に言うと、気にすることさえありません。多くの利益が得られるわけではありません。1000 レコードはそれほど多くはなく、Wordpress はクエリを最適化するために wp_posts のインデックスを既に使用しています。コア WPクエリ選択から削除された少数の列。

于 2010-11-12T15:17:07.803 に答える
0

あなたはすでに使用しようとしました:

the_permalink()  

http://codex.wordpress.org/Function_Reference/the_permalink

get_permalink( $id )    

http://codex.wordpress.org/Function_Reference/get_permalink

于 2010-11-12T15:26:05.953 に答える