我最近将两个站点的Wordpress网络从本地MAMP服务器迁移到在线MAMP服务器。除了Post-Thumbnail的功能外,所有内容都完美迁移。元框根本不会出现在网络中的任何主题中的任何网站中。
我已经测试了几个不同的主题,启用了后缩略图,结果是一样的。没有metabox可见!我很难过,有没有人有建议?
其中一个网站的functions.php文件是:
if(function_exists('add_theme_support')) {
add_theme_support('post-thumbnails', array( 'page', 'post', 'portfolio' ));
/** Register custom size */
add_image_size('page-image', 620, 620, false);
add_image_size('portfolio-image', 795, 575, true);
add_image_size('portfolio-thumbnail', 135, 94, true);
}
//------enable post thumbnail preview for custom columns
if ( !function_exists('fb_AddThumbColumn') && function_exists('add_theme_support') ) {
// for post and investments
function fb_AddThumbColumn($cols) {
$cols['thumbnail'] = __('Thumbnail');
return $cols;
}
function fb_AddThumbValue($column_name, $post_id) {
$width = (int) 200;
$height = (int) 125;
if ( 'thumbnail' == $column_name ) {
// thumbnail of WP 2.9
$thumbnail_id = get_post_meta( $post_id, '_thumbnail_id', true );
// image from gallery
$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($width, $height), true );
elseif ($attachments) {
foreach ( $attachments as $attachment_id => $attachment ) {
$thumb = wp_get_attachment_image( $attachment_id, array($width, $height), true );
}
}
if ( isset($thumb) && $thumb ) {
echo $thumb;
} else {
echo __('None');
}
}
}
// for posts
add_filter( 'manage_posts_columns', 'fb_AddThumbColumn' );
add_action( 'manage_posts_custom_column', 'fb_AddThumbValue', 10, 2 );
// for portfolio
add_filter( 'manage_portfolio_columns', 'fb_AddThumbColumn' );
add_action( 'manage_portfolio_custom_column', 'fb_AddThumbValue', 10, 2 );
}
*/
function the_post_thumbnail_url($post_id) {
echo wp_get_attachment_url( get_post_thumbnail_id($post_id) );
}
答案 0 :(得分:2)
您必须切换到Network Admin
模式
然后转到
Settings
> Network settings
接近结束时你会发现
Upload Settings
> Media upload buttons
我检查了Images
,看到我的新帖子管理页面中显示Featured Image
框。
答案 1 :(得分:1)
迁移Wordpress网络时,我遇到了类似的缩略图问题。 我已使用此代码修复它,也许它可以帮助您。您需要将此代码添加到functions.php
<?php
function get_timthumb_thumbnail($post_id = null) {
global $blog_id;
//we can access it, so why not use it?
$is_mu = WP_ALLOW_MULTISITE;
//if is true it means it's a wordpress MU site and we'll have to do some work
if($is_mu == true):
$thumbnail_id=get_the_post_thumbnail($post_id);
preg_match ('/src="(.*)" class/',$thumbnail_id,$link);
$imageParts = explode('files/', $link[1]);
if (!empty($imageParts[1])):
//check if the image is in the blog directory
if(@getimagesize('./wp-content/blogs.dir/' . $blog_id . '/files/' . $imageParts[1])):
$thumbnail = 'http://'.$_SERVER['HTTP_HOST'].'/wp-content/blogs.dir/' . $blog_id . '/files/' . $imageParts[1];
endif;
//check if the image is in the main uploads directory (you never know)
if(@getimagesize('./wp-content/uploads/' . $imageParts[1])):
$thumbnail = 'http://'.$_SERVER['HTTP_HOST'].'/wp-content/uploads/' . $imageParts[1];
endif;
else:
$imageParts = explode('uploads/', $link[1]);
if(@getimagesize('./wp-content/uploads/' . $imageParts[1])):
$thumbnail = 'http://'.$_SERVER['HTTP_HOST'].'/wp-content/uploads/' . $imageParts[1];
endif;
endif;
else:
$thumbnail_id=get_the_post_thumbnail($post_id);
preg_match ('/src="(.*)" class/',$thumbnail_id,$link);
$thumbnail = $link[1];
endif;
return $thumbnail;
}
?>
要在循环中使用此功能,我添加了类似的内容:
<?php $thumb = get_timthumb_thumbnail($post->ID); ?>
<?php if(has_post_thumbnail()){ ?>
<img src="<?php echo $thumb;?>" class="thumb" />
<?php }else{
echo '<img src="'.get_bloginfo("template_url").'/img/boyds.png" class="thumbdflt" />';
}?>
问候。