如何显示附加到管理员内部帖子的图像?

时间:2013-01-04 17:02:50

标签: wordpress

Hello stackoverflow朋友们好了!

希望有人能帮助我!我看着整个互联网没有运气:(

我想要做的是以某种方式显示附加到WP管理员内部帖子的图像。例如,帖子特色图片显示的方式相同。我发现的唯一一件事就是如何在管理列中显示帖子的附件数量,但我希望看到的是后管理页面中每个帖子内所有附加图像的缩略图。我认为这将非常有用,因为我现在甚至无法判断哪个帖子有附件。

我想在不使用插件的情况下完成此任务。

我在网上找了几天没运气。任何帮助将不胜感激。

非常感谢您的进步!

2 个答案:

答案 0 :(得分:4)

解决方案是创建一个元框,然后将缩略图放在那里。这需要add_meta_box()函数和wp_get_thumb_attachment_url()。我们还需要找到某个帖子的所有附加图片,我们会使用答案here来完成。

将所有这些放在一起,并假设PHP版本> = 5.3以便我们可以使用匿名函数,它将如下所示:

add_action( 'add_meta_boxes', function() {
add_meta_box( 'att_thumb_display', 'Attachmed images', function( $post ) {
    $args = array(
        'post_type' => 'attachment',
        'post_mime_type' => 'image',
        'post_parent' => $post->ID
    );

    echo '<ul>';
    foreach( get_posts( $args ) as $image) {
        echo '<li><img src="' . wp_get_attachment_thumb_url( $image->ID ) . '" /></li>';
    }
    echo '</ul>';
}, 'post' );
});

add_meta_box的论点,我已经设置为&#34; post&#34;指示此元框可用的帖子类型。如果您希望页面上可用,则必须将其设置为页面。或者,如果您希望它在自定义帖子类型上可用,您还必须相应地修改它。

我希望这有效。我还没试过。

答案 1 :(得分:2)

试试这个:

   /* === Add Thumbnails to Posts/Pages List === */
if ( !function_exists('o99_add_thumbs_column_2_list') && function_exists('add_theme_support') ) {

    //  // set your post types , here it is post and page...
    add_theme_support('post-thumbnails', array( 'post', 'page' ) );

    function o99_add_thumbs_column_2_list($cols) {

        $cols['thumbnail'] = __('Thumbnail');

        return $cols;
    }

    function o99_add_thumbs_2_column($column_name, $post_id) {

            $w = (int) 60;
            $h = (int) 60;

            if ( 'thumbnail' == $column_name ) {
                // back comp x WP 2.9
                $thumbnail_id = get_post_meta( $post_id, '_thumbnail_id', true );
                // from gal
                $attachments = get_children( array('post_parent' => $post_id, 'post_type' => 'attachment', 'post_mime_type' => 'image') );
                if ($thumbnail_id)
                    $thumb = wp_get_attachment_image( $thumbnail_id, array($w, $h), true );
                elseif ($attachments) {
                    foreach ( $attachments as $attachment_id => $attachment ) {
                        $thumb = wp_get_attachment_image( $attachment_id, array($w, $h), true );
                    }
                }
                    if ( isset($thumb) && $thumb ) {
                        echo $thumb;
                    } else {
                        echo __('None');
                    }
            }
    }

    // for posts
    add_filter( 'manage_posts_columns', 'o99_add_thumbs_column_2_list' );
    add_action( 'manage_posts_custom_column', 'o99_add_thumbs_2_column', 10, 2 );

    // for pages
    add_filter( 'manage_pages_columns', 'o99_add_thumbs_column_2_list' );
    add_action( 'manage_pages_custom_column', 'o99_add_thumbs_2_column', 10, 2 );
}

它会在管理帖子/页面列表中显示特色图片作为预览, 如果你想在帖子里面显示它 - 使用@Calle建议: (修改在这里工作)

add_action( 'add_meta_boxes', 'o99_add_attach_thumbs_meta_b' );

function o99_add_attach_thumbs_meta_b (){

add_meta_box ('att_thumb_display', 'Attached images','o99_render_attach_meta_b','post');

}

function o99_render_attach_meta_b( $post ) {
$output = '';
$args = array(
        'post_type' => 'attachment',
        'post_mime_type' => 'image',
        'post_parent' => $post->ID
    );
    //
    // uncomment if you want ordered list
    //
    // $output .= '<ul>';
     $images = get_posts( $args );
    foreach(  $images as $image) {
    //$output .= '<li>';
        $output .= '<img src="' . wp_get_attachment_thumb_url( $image->ID ) . '" />';
        //$output .= '</li>';
    }
   // $output .= '</ul>';
  echo $output;
}