2017-12-18 10 views
0

私はWordPress(duh)を使いこなしています。サブページからの添付ファイルの呼び出しと表示 - WordPress

私はいくつかのサブページを持っています。それぞれのサブページには画像が添付されています。私はこれらの画像を表示したいだけです。クライアントは定期的にさらに多くのサブページを追加するので、コードは自己のイメージだけを表示することを知っている必要があります。実行中の問題はです。それぞれサブページが表示されます。すべて添付ファイルすべてサブページです。私はすべての私の通常のページのIfステートメントを、持っている私のpage.php

//find out if it is a suppage to use in page.php as function 'is_subpage' 
function is_subpage() { 
    global $post;        // load details about this page 

    if (is_page() && $post->post_parent) { // test to see if the page has a parent 
     return $post->post_parent;    // return the ID of the parent post 

    } else {         // there is no parent so ... 
     return false;       // ... the answer to the question is false 
    } 
} 

:私のFunctions.php

は、私は、ページがInfactはサブページであるかどうかを判断するには、このコードを持っています。それは、この中で絶頂に達する:exhibition-template.php

elseif (is_subpage()) { 
     get_template_part('exhibition-template'); 
     get_template_part('normalfooter'); 
    } 

、私は私のイメージは、私がこれを持って表示したい場所:

<?php 

if (is_subpage($post->ID)) { //I think I screwed up here, innermost brackets 


$args = array(
    'order'   => 'ASC', 
    'post_type'  => 'attachment', 
    'post_parent' => $post->ID, //or is my issue here...? 
    'post_mime_type' => 'image', 
    'post_status' => null, 
    'numberposts' => -1, 
); 
$attachments = get_posts($args); 
    if ($attachments) { 
     foreach ($attachments as $attachment) { 
      echo wp_get_attachment_link($attachment->ID, 'large', false, false); 
     } 
    } 
}  
?> 

しかし、何が起こるかはそれぞれ、すべてのサブページは、単純にすべてのサブページ間ですべての画像を表示していますそして、率直に言って、私は進歩する方法や、何をどこで始めるべきかを知ることができない。 アイデア

+0

を私はあなたの新しい友人、のvar_dump()http://php.net/manual/en/function.var-dump.phpをご紹介しましょう。これはあなたのexhibition-template.phpが見ることができる方法です。最初に、あなたの関数内でどの条件が満たされているかを調べるために、条件式の中にvar_dumpedを出すために何かを含めることにします。それから私はあなたの展示用テンプレートに$ post-> IDが何であるか、つまりvar_dump($ post-> ID)が分かっていることを確認します。 –

+0

ありがとう - 私は、デバッグ/エラー/アウトプットが実際にどこに出現するのでしょうか? –

答えて

0

あなたにはいくつか問題があるようです。

ページはしたがって、このようにあなたが$post->post_parentが0以上であるかどうかを確認するためにテストする必要がありますサブページであるかどうかを確認するためのテスト:

if (is_page() && $post->post_parent > 0) { 
    return $post->post_parent; 
} else { 
    return false; 
} 

あなたはif (is_subpage($post->ID))..に任意の引数を渡す必要はありません。あなたはまた、WordPressの 'get_attached_media()関数を使用してこれらの添付ファイルを取得することもできます。

if (is_subpage()) { 

    $attachments = get_attached_media('image', $post->ID); 

    foreach ($attachments as $attachment) { 
     echo wp_get_attachment_link($attachment->ID, 'large', false, false); 
    } 

} 
+0

こんにちは、これは脂肪のトリミングが大好きです。しかし、今では、私のサブページは、最も最近のサブページからの添付画像のみを表示しています.-申し訳ありませんが、本当にありがとうございます。 –

+0

これは、現在表示されているページから添付ファイルを返します。それはあなたが見ているものではありませんか? – mbacon40

+0

いいえ、**すべての**サブページで発生します。**最新の**サブページとそのページのみから添付ファイルを返します。 URLは正確で、各サブページに関連付けられた他のカスタムフィールドも正しく表示されるため、毎回最新のサブページにリダイレクトされていないことがわかります。各サブページは、最新のページの添付画像を排他的に取得して表示するだけです。 –

関連する問題