0

私は人気のある最近の投稿を表示するウィジェットを作成しますが、それは常に表示されます 2013 08 02 何が問題ですか? それは wp_query bu で正しく表示されますが、それをクリアできない余分な文字列をさらに表示します。

function posts($sort = 'recent', $items = 3, $echo = TRUE, $bg_color = 'black') 

{ $return_html = '';

if($sort == 'recent')
{
    $posts = get_posts('numberposts='.$items.'&order=DESC&orderby=date&post_type=post&post_status=publish');
    $title = __('Recent Posts', THEMEDOMAIN);
}
else
{
    global $wpdb;

    $query = "SELECT ID, post_title, post_content FROM {$wpdb->prefix}posts WHERE post_type = 'post' AND post_status= 'publish' ORDER BY comment_count DESC LIMIT 0,".$items;
    $posts = $wpdb->get_results($query);
    $title = 'Popular Posts';
}

if(!empty($posts))
{

    $return_html.= '<h2 class="widgettitle">'.$title.'</h2>';
    $return_html.= '<ul class="posts blog '.$bg_color.'_wrapper">';

    $count_post = count($posts);

        foreach($posts as $post)
        {
            $image_thumb = get_post_meta($post->ID, 'blog_thumb_image_url', true);
            $return_html.= '<li>';

            if(has_post_thumbnail($post->ID, 'large'))
            {
                $image_id = get_post_thumbnail_id($post->ID);
                $image_url = wp_get_attachment_image_src($image_id, 'thumbnail', true);

                $return_html.= '<a href="'.get_permalink($post->ID).'"><img class="alignright frame" src="'.$image_url[0].'" alt="" /></a>';
            }

            $return_html.= '<strong class="title"><a href="'.get_permalink($post->ID).'">'.$post->post_title.'</a></strong><br/><span class="post_attribute">'.get_the_time('F j, Y', $post->ID).'</span>';
            $return_html.= '</li>';

        }   

    $return_html.= '</ul>';

誰でも私を助けることができますか?私の悪い英語でごめんなさい。

4

1 に答える 1

0

WPドキュメントから、

get_the_time は、PHP で使用する現在の投稿の時間を返します。時刻を表示しません。投稿の時間を表示するには、the_time() を使用します。このタグは The Loop 内で使用する必要があります。

だから私はあなたが使いたいと思う、the_time('F j, Y')


foreach編集:ループの最初の行としてこの行を追加してみてください:

setup_postdata( $post );
于 2013-08-02T18:03:08.160 に答える