5

特定の分類の下で一連のページをループしようとしています。ループ部分はうまく機能し、必要なすべてのページを取得します (オブジェクトにうまくラップされていWP_Postます)。

しかし、今、私は別の種類の問題に直面しています。ページのサムネイルをエディターで設定したとおりに含めたい。getthethumbnailfeaturedimage_-考えられる限りの組み合わせを試しましたが、役に立ちませんでした。

WP_Postオブジェクトはかなり新しく、ドキュメントが不足しています。

この謎を解明できる人はいますか?私の目標は、最終的には<figure>、画像、タイトル、および各オブジェクトの簡単な説明を含む一連の要素を表示することです。

4

3 に答える 3

8

以下は、ショートコード形式の概念実証です。Featured Imageを持つすべての投稿を含むコード ブロックをダンプします。

関数リファレンス: has_post_thumbnail,get_the_post_thumbnail

add_shortcode( 'all-post-thumbs', 'so_14007170_dump_post_thumbs' );

function so_14007170_dump_post_thumbs( $atts, $content ) 
{
    // Query
    $posts = get_posts( array(
        'post_type'    => 'post',
        'numberposts'  => -1,
        'post_status'  => 'publish'
    ) );

    // Build an array of post thumbnails
    $thumbs = array();
    foreach( $posts as $post)
    {
        if( has_post_thumbnail( $post->ID) )
            $thumbs[] = array( $post->post_title, htmlentities(get_the_post_thumbnail( $post->ID ) ) );
    }

    // Build output and return
    $echo = '<pre>'. print_r( $thumbs, true ) . '</pre>';
    return $echo;
}

フロントエンドでの結果:

var ダンプ

アイキャッチ画像付きの投稿:

ここに画像の説明を入力

于 2012-12-22T23:19:15.993 に答える
1

何が欲しいかわかりませんが、特定のページのすべての画像を取得したい場合は、

$parent='your page id';
$args=array(
    'post_parent' => $parent,
    'post_type' => 'attachment',
    'post_mime_type' => 'image',
    'orderby' => 'menu_order',
    'order' => 'ASC',
    'numberposts' => -1 
);
$images = get_children($args);

このコードをループに貼り付けることができます。適切なpage_idものを指定するparentと、すべての画像が配列として取得され$images、ループを実行できます。

詳細については、Codexをご覧ください。

アップデート:

注目の画像のみを取得するには、

echo get_the_post_thumbnail('page id here', 'thumbnail');

詳細については、Codexをご覧ください。

于 2012-12-22T23:13:14.690 に答える
0
if ( have_posts() ) : while ( have_posts() ) : the_post();
    // stuff before thumbnail

    $thumbnail_args = array();

    // insert whatever thumbnail args you want

    echo get_the_post_thumbnail();

    // stuff after thumbnail

endwhile; else:

    echo "<h2>Sorry, nothing to see here.</h2>";
endif

残念ながら、WP_Postメソッドの名前は非常に貧弱です。Postと対話するほとんどのメソッドには、「_」と「post」の配置を追加する必要があります。

于 2012-12-22T23:18:56.547 に答える