Hello stackoverflow朋友们好了!
希望有人能帮助我!我看着整个互联网没有运气:(
我想要做的是以某种方式显示附加到WP管理员内部帖子的图像。例如,帖子特色图片显示的方式相同。我发现的唯一一件事就是如何在管理列中显示帖子的附件数量,但我希望看到的是后管理页面中每个帖子内所有附加图像的缩略图。我认为这将非常有用,因为我现在甚至无法判断哪个帖子有附件。
我想在不使用插件的情况下完成此任务。
我在网上找了几天没运气。任何帮助将不胜感激。
非常感谢您的进步!
答案 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;
}