web-dev-qa-db-ja.com

添付ファイルページのページテンプレート

こんにちは、私はウェブ上で何も見つけることができませんでした。画像添付ページのカスタムテンプレートを作成することは可能ですか。人々がギャラリーを容易にナビゲートできるように、画像添付ページにナビゲーションを追加することが可能であるかどうかと思います。

各画像にコメントを追加することさえ可能かもしれません。

編集:私は現在添付ファイルのページにいるかどうかを問い合わせることも可能ですか?例えば。パンくずリストには "home>投稿に戻る> current_image.jpg"のようなものを挿入したいです。

編集/更新:

function breadcrumbs() {
    if (!is_home()) {
        echo "<a href='" . get_bloginfo('home') . "' title='Home'>Home</a> &rang; ";
        if (is_category()) {
            $category = get_the_category(); 
            echo $category[0]->cat_name;
        } else if (is_single()) {
            the_category('title_li=');
            echo " &rang; ";
            the_title();
        } else if (is_page()) {
            $ancestors = get_post_ancestors($post);
            // echo ancestors
            foreach($ancestors as $id) {
                echo "<a href='" . get_permalink( $id ) . "' title='" . get_the_title( $id ) . "'>" . get_the_title( $id ) . "</a> &rang; ";
            }
        } else if (is_tag()) {
            global $wp_query;
            $tag = get_term( $wp_query->queried_object_id, 'post_tag');
            echo "Tag &rang; " . $tag->name;
        } else if (is_search()) {
            echo " Searchresults &rang; " . get_search_query();
        } else if (is_404()) {
            echo "Not found";
        //} else if ( is_attachment() ) {
        } else if ($post->post_type == 'attachment') {
            //echo "<a href='" . get_permalink() . "'>" . get_the_title() . "</a>";
            echo "doesn't work?";
        }
    }
}
1
mathiregister

WordPressは数種類の添付ファイルテンプレートをサポートしています。 get_attachment_templateの関数wp-includes/theme.phpはこのサポートを提供します。それはwp-includes/template-redirect.phpで呼ばれます。テーマにattachment.phpが含まれている場合、すべての添付ファイルはそのテンプレートでレンダリングされます。テーマにimage.phpも含まれている場合は、post_mime_typeがimage/*である限り、すべての画像がそのテンプレートを使用します。

ギャラリーのナビゲーションを追加することは確かに可能です。関数wp-content/themes/twentyten/loop-attachment.phpおよびprevious_image_linkを使用するnext_image_linkを参照してください。

Twentytenの添付ファイルテンプレートはcomments_templateを呼び出すので、あなたはそれぞれの写真についてコメントを集めることができます。あなたはあなたの投稿が直接画像ではなく添付ページにリンクしていることを確認する必要があります。

照会されたオブジェクトが添付ファイルかどうかを判別するためにis_attachmentを呼び出すことができます。

2
Andy

簡単な答え - はい。

添付ファイルは、MIMEタイプに基づいたテンプレートファイルによって提供されます。たとえば、添付ファイルがimage/jpgの場合、WordPressは最初にimage.php、次にjpg.phpという名前のテンプレートファイルを探し、次にattachment.phpを探します。他のテンプレートファイル(single.phpまたはindex.php)に戻る前に。 Codexページ にテンプレートの階層を示す良いチャートがあります。

これは、WPの書き換え構造を介して添付ファイルにアクセスしている場合(つまり、画像を挿入するときに、[ファイルへのリンク]オプションではなく[投稿へのリンク]オプションを選択した場合)にのみ機能します。 -name/attachment-name ...ファイルのURLに直接アクセスすると、WordPressのテンプルシステムをバイパスします。

あなたが添付ファイルのページにいるかどうかを確認したい場合は、あなたはいつでも投稿の種類を確認することができます。

if ($post->post_type == 'attachment') {

もちろん、attachment.phpテンプレートの中に、それをチェックすることを気にする必要はありません - あなたはすでにあなたが添付ファイルのページにいることを知っています。

6
goldenapples