WordPressコンテンツなしで(オーバーヘッドを減らすため)
-
09-10-2019 - |
質問
シナリオ: サイドバーで折りたたみ可能なパネルを作成し、すべてのカテゴリをDivとして表示し、すべての投稿リンクをそれらのカテゴリDIVに表示しています。簡単です。私はすべてのカテゴリを手に入れました get_categories('orderby=name&order=ASC')
そして、すべてのカテゴリをループして、各カテゴリのすべての投稿を取得します。
問題: コード get_posts('nopaging=1&category='.$category->cat_ID)
以外のすべての投稿を私に与えます content
そして他のことも。私が望んでいるのは、投稿のパーマリンクです。それでおしまい。使っていると信じています get_posts
したがって、20を超えるカテゴリに約1000の投稿があるため、大きなオーバーヘッドが作成されます。
解決: パーマリンクを備えたカテゴリのすべての投稿を、他のもの、特に最大のオーバーヘッドであるため、コンテンツを使用できない関数またはコードの一部。
解決
カスタムクエリを使用して、必要なものを正確に抽出することを調べます。 http://codex.wordpress.org/displaying_posts_using_a_custom_select_query
クエリを選択することは、物事が互いにオーバーライドし始めるときにクエリを選択することはワードプレスで楽しいgotchaになる可能性があるため、カスタムコールを終えた後にもwp_reset_query()を使用することもできます。 http://codex.wordpress.org/function_reference/wp_reset_query
コメントの後に編集:wp_term_relationshipsとwp_postsの間の結合を使用する必要があります。おそらく、適切な尺度でスローされたwp_term_taxonomyを使用しても3方向です。
正直に言うと、私は気にしません - それは多くの利益のために多くの仕事です。 1000のレコードはそれほどそれほど多くはありません。WordPressはすでにwp_postsのインデックスを使用してクエリを最適化しています。 WP Super Cacheプラグインを使用して訪問者向けの静的HTMLファイルを生成することにより、おそらくより良い結果が得られるでしょう( http://wordpress.org/extend/plugins/wp-super-cache/ )CORE WPクエリを複製することにより、選択から削除された少数の列を使用して。
他のヒント
あなたはすでに使用しようとしました:
the_permalink()
http://codex.wordpress.org/function_reference/the_permalink
get_permalink( $id )