【发布时间】:2020-06-13 13:45:13
【问题描述】:
一直在尝试一些自定义元框,但我读过或找不到的任何东西都无法帮助我实现我真正追求的目标。
我可以渲染一个新的元框,但我找不到在管理面板中实际更改帖子缩略图本身的输出的方法。
function new_post_thumbnail_meta_box() {
global $post;
echo 'Content above the image.';
$thumbnail_id = get_post_meta( $post->ID, '_thumbnail_id', true );
echo _wp_post_thumbnail_html( $thumbnail_id );
echo 'Content below the image.';
}
function render_new_post_thumbnail_meta_box() {
global $post_type;
// remove the old meta box
remove_meta_box( 'postimagediv','post','side' );
// adding the new meta box.
add_meta_box('postimagediv', __('Featured Image'), 'new_post_thumbnail_meta_box', $post_type, 'side', 'low');
}
add_action('do_meta_boxes', 'render_new_post_thumbnail_meta_box');
如何在管理面板中显示更大或“实际尺寸”的特色图片?
复制包含函数并修改输出,这会引发服务器错误。
function _wp_post_thumbnail_html( $thumbnail_id = null, $post = null ) {
global $content_width, $_wp_additional_image_sizes;
$post = get_post( $post );
$upload_iframe_src = esc_url( get_upload_iframe_src('image', $post->ID ) );
$set_thumbnail_link = '<p class="hide-if-no-js"><a title="' . esc_attr__( 'Set featured image' ) . '" href="%s" id="set-post-thumbnail" class="thickbox">%s</a></p>';
$content = sprintf( $set_thumbnail_link, $upload_iframe_src, esc_html__( 'Set featured image' ) );
if ( $thumbnail_id && get_post( $thumbnail_id ) ) {
$old_content_width = $content_width;
$content_width = 600;
if ( !isset( $_wp_additional_image_sizes['post-thumbnail'] ) )
$thumbnail_html = wp_get_attachment_image( $thumbnail_id, array( $content_width, $content_width ) );
else
$thumbnail_html = wp_get_attachment_image( $thumbnail_id, 'post-thumbnail' );
if ( !empty( $thumbnail_html ) ) {
$ajax_nonce = wp_create_nonce( 'set_post_thumbnail-' . $post->ID );
$content = sprintf( $set_thumbnail_link, $upload_iframe_src, $thumbnail_html );
$content .= '<p class="hide-if-no-js"><a href="#" id="remove-post-thumbnail" onclick="WPRemoveThumbnail(\'' . $ajax_nonce . '\');return false;">' . esc_html__( 'Remove featured image' ) . '</a></p>';
}
$content_width = $old_content_width;
}
return apply_filters( 'admin_post_thumbnail_html', $content, $post->ID );
}
或者我应该使用 add_image_size( 'post_thumbnail', 600, 400, true ); ?因为这就是它要寻找的东西?
【问题讨论】:
-
您的意思是“更大或实际大小”是什么意思? IMO,屏幕截图/草稿设计会有所帮助。因为,一旦我看到一个错误,其中特色图像是“全尺寸”并且它完全破坏了管理布局,出现了水平滚动条并且元框全部溢出。
-
@brasofilo 没关系,我正在开发自己的自定义管理面板,我已经完全重新设计了它(完成后将在 github 上发布),它是响应式的,所以不会有水平滚动条.管理面板中显示的特色图片默认为 266xrandom px(高度取决于纵横比),我希望能够在编辑/撰写帖子时显示完整尺寸的特色图片。
-
我希望它显示为实际尺寸或我想要的尺寸。刚才它在管理面板中以特色图像的默认大小显示。通常为 266x144 像素。
-
那太好了,brasofilo。
-
你必须复制函数并重命名。
标签: wordpress