2

次のコードを使用して、ランダムな投稿データをブログのサイドバーにプルしています。その投稿のカスタム フィールド「athletethumbnail」から取得した画像を追加するにはどうすればよいですか? :

<?php
global $wp_query;
$current_id = $wp_query->get_queried_object_id();

    $my_query = new WP_Query( array(
        'post_type'=>'athletes',
        'posts_per_page'=>'1',
        'category' => '36' ,
        'orderby' =>'rand'
        ));

        if( $my_query->have_posts() ) {
        while ($my_query->have_posts()) : $my_query->the_post();

?>
<?php the_title(); ?>

<?php
endwhile;
}

wp_reset_query();
?>
4

2 に答える 2

3

ここにあるドキュメントから、PostMeta関数の下にあります

These functions are intended for use inside The Loop, and all return arrays.

get_post_custom()
Get all key/value data for the current post.
................

解決策:get_post_custom()を使用する必要があります。

これを試して :

$custom = get_post_custom(the_ID());
echo $athletethumbnail = $custom["athletethumbnail"][0];

注:get_post_customがget_the_id idを呼び出すため、POSTIDを渡さなくても逃げることができるはずです。postidは渡されません。ソースはこちら

変更後:

    <?php
    global $wp_query;
    $current_id = $wp_query->get_queried_object_id();

        $my_query = new WP_Query( array(
            'post_type'=>'athletes',
            'posts_per_page'=>'1',
            'category' => '36' ,
            'orderby' =>'rand'
            ));

            // The Loop
while ( $the_query->have_posts() ) : $the_query->the_post(); ?>

<?php 
 $custom = get_post_custom(the_ID());
 echo $athletethumbnail = $custom["athletethumbnail"][0];
 the_title(); ?>

<?php
      endwhile;

// Reset Post Data
wp_reset_postdata();

?>
于 2012-06-24T20:49:17.053 に答える