WordPress 3.0を使用して「すべての投稿」または「アーカイブ」ページを作成しますか?
質問
作成したいのですが 「すべての投稿」 のページ オーシャンバイトブログ これには、これまでの投稿のすべてのタイトルの順序付けられていないリストが含まれており、各タイトルはブログ投稿にハイパーリンクしています。
このようなことを行ういくつかのプラグインがあるように見えますが、ほとんどの場合、WordPress 3.0+はまだサポートされているとおりにリストされていません。
「最良の方法」についての提案はありますか?
どうも。
解決 3
最終的に、次のコードを含む21テーマフォルダーで「allposts-page.php」と呼ばれるページテンプレートを作成することになりました。
<?php
/**
* Template Name: All Posts
*
* A custom page template for displaying all posts.
*
* The "Template Name:" bit above allows this to be selectable
* from a dropdown menu on the edit page screen.
*
* @package WordPress
* @subpackage Twenty_Ten
* @since Twenty Ten 1.0
*/
get_header(); ?>
<div id="container">
<div id="content" role="main">
<h2>Archive of All Posts:</h2>
<ul>
<?php wp_get_archives('type=postbypost'); ?>
</ul>
</div><!-- #content -->
</div><!-- #container -->
<?php get_footer(); ?>
次に、「すべての投稿」のタイトルを持つWordPress管理システムを使用して新しいページを作成し、ドロップダウンから「すべての投稿」テンプレートを選択しました。体内に何も入る必要はありませんでした。
結果のページは次のように見つけることができます。
www.oceanbytes.org/all-posts/
「wp_get_archives」のデフォルトは「毎月」ですが、長いリストにあるようにすべての投稿をリストしたいので、「ポストボスト」を選択しました。その他のオプションは、WordPressサイトを介して見つけることができます 関数リファレンス/WP Archivesを取得します
他のヒント
新しいテンプレートファイルを作成し、これをループとして実行します。
query_posts( array( 'posts_per_page' => -1, 'post_status' => 'publish' ) );
if( have_posts() ):
echo '<ul>';
while( have_posts() ):
the_post();
echo '<li><a href="';
the_permalink();
echo '">';
the_title();
echo '</a></li>';
endwhile;
echo '</ul>';
endif;
wp_reset_query();
その後、ページにそのテンプレートを使用すると、ページが自動的に生成されます。チェックアウト コーデックスページ 為に query_posts()
クエリを変更する方法の詳細については。
「最良の方法」は、カスタムページテンプレートを使用することです。と同じように index.php
すべての投稿をループすると、カスタムクエリを実行してすべてをループし、必要な情報(タイトル、URL)をブラウザにエコーすることができます。
カスタムページテンプレートを作成するための優れたチュートリアルを次に示します。