web-dev-qa-db-ja.com

Archive.phpの代わりにインデックスページをロードするWordpress

私は持っています

index.php
archive.php
...

私がdomain.comに行くと、それはindex.phpをロードしますが、これは予想されたものです。

しかし、私がwww.domain.com/page/2/を実行すると、正しい投稿(2ページ目の投稿のように)が読み込まれますが、inindex.php templateを使用します。 archive.phpテンプレートをロードします。これはどのように達成可能ですか?

1
21zna9

archive.phpは、検索以外、分類以外の...ベースのコンテンツのサブセットの後続ページには使用されません。

私はあなたがpaged.phpを探しているかもしれないと思います(しかしそれは最初のページにも使われるでしょう)。

あるいは、ページ番号が1より大きい別のテンプレートを呼び出すためにindex.phpにロジックを追加します。

見直しの訂正http://codex.wordpress.org/Template_Hierarchy#Visual_Overviewpages.php答えではありません。ページ化された(つまり、単一ではない)投稿はhome.phpを使用し、そうでなければindex.phpのみを使用します。

そのため、home.phpまたは投稿用のカスタムテンプレートを使用するには、(おそらくindex.phpに)独自のロジックを追加する必要があります。

(この answer は、使用するテンプレートを決定するためのWPロジックを示しています。)

1
Richard

これはWPの本来の機能ではないため、これを行う方法は次のとおりです。

基本的に、$ pagedが設定されているか確認してください。これは、条件式の中でis_paged()を呼び出すことによって行うことができます。

<?php if ( ! is_paged() ) : 
// code for home page 
else: 
// code for archive page
endif; 
?> 

テンプレートを利用することで、このindex.phpをまだきれいに見せることができます。

ただし、これを行っていることを確認する必要があります。

<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; ?> 

ホームクエリまたはアーカイブクエリの前に。

0
21zna9