'windows'
、'doors'
、'garages'
という投稿タイプのカスタムがいくつかあります。
私のワードプレスサイトに次のようなURLがあるときはいつでも、カスタムテンプレート(special.php
)をロードします。
www.mysite.com/windows/
www.mysite.com/doors/
www.mysite.com/garages/
この場合は適切ではないため、ページは使用したくありません(上記の例では縮小した例を示しました)。
どうすれば達成できますか?
現在、それらの名前のページは存在しないので、404(index.php)を取得しています。
あなたのカスタム投稿タイプのウィンドウは/ windows/etcにマップされると思いますか?
テーマのsingle-posttype.phpを使って、個々のカスタム投稿タイプのテンプレートをカスタマイズできます。 single-windows.php single-doors.phpとsingle-garages.php Wordpressは自動的にこれらを拾います
カスタムページテンプレートを使用することもできます。正しいテンプレート名を持つpage-windows.phpまたはカスタムテンプレート。
ページが投稿の種類を一覧表示することを目的としている場合は、投稿アーカイブのテンプレートを作成してみることができます。例: http://mark.mcwilliams.me/2010/10/wordpress-3-1 - カスタムポストタイプアーカイブの追加/
あるいは、それぞれの名前に対して分類法を作成し、taxonomy-windows.phpを使うこともできます。
上記のすべてを使用して、以下の行に沿って何かを使用してコードを共有することができます。
<?php
// example code, may need minor modifications
get_template_part('special',$post->post_type);
1つのファイル内のすべてのページのコードを共有し、子テーマをサポートし、special-windows.phpなどのファイルを介してオーバーライドすることができます。
または、上記のどれもあなたに合わない場合は、最終的な解決策があります。
http://www.braindonor.net/coding-blog/custom-pages-with-wordpress-plugins/230/
これにより、テーマに依存しない方法で、投稿やページを必要とせずに、好きな場所に好きな場所にページを配置できます。
single.php内のすべてのスクリプトをsay "narmol.php"という名前のanthorテンプレートに移動します。
そしてsingle.phpの中で、
if(post_type="windows" || "doors" || "garages") include "special.php";
else include "normal.php";
上記のコードは単なるアイデアです(擬似コード)。実装方法を知っていると思います。あなたが知らないのなら私に知らせてください。
新しい投稿タイプを登録するとき、投稿タイプアーカイブを有効にする引数がありますhas_archive
( Codex を確認してください)。投稿タイプのアーカイブを有効にすると、次のURLが表示されます。
www.mysite.com/windows/
www.mysite.com/doors/
www.mysite.com/garages/
テンプレートファイルとしてarchive-$post_type.php
を使います。そして、ファイルarchive-$post_type.php
が存在しない場合、それはarchive.php
を探します。 ( Codex を確認してください)
だから私はあなたのための簡単な解決策は$post_type
ファイルのarchive.php
をチェックすることだと思います、そしてそれがwindows, doors, garages
の一つであるとき、私たちはこのようにspecial.php
を含みます:
<?php
// archive.php
$post_type = get_query_var('post_type');
if (in_array($post_type, array('windows', 'doors', 'garages'))) {
include 'special.php';
exit;
}
// default content for other archive type
?>
注:投稿タイプを登録するときは、has_archive
をtrue
に設定することを忘れないでください。