Wordpress3.5配置相对路径

图片相对路径

post.php修改函数:

function wp_get_attachment_url( $post_id = 0 )

wp-config.php中增加:

if(get_option('upload_path')=='wp-content/uploads' || get_option('upload_path')==null) {update_option('upload_path',WP_CONTENT_DIR.'/uploads');}

remove_action('template_redirect', 'redirect_canonical');

在管理页面设置媒体路径为相对路径


数据库wp_options字段修改:

home

siteurl

插件JS文件语言包复制

tinymce



wp_get_attachment_url 函数

---------

function wp_get_attachment_url( $post_id = 0 ) {
    $file_dir=dirname(__FILE__);
    $server_root=$_SERVER[DOCUMENT_ROOT];
    $file_dir=substr($file_dir,strlen($server_root));
    $file_dir=substr($file_dir,0,-12);
    if($file_dir!=''){
        $file_dir='/'.substr($file_dir,1);
    }
    $post_id = (int) $post_id;
    if ( !$post =& get_post( $post_id ) )
        return false;
    $url = '';
    if ( $file = get_post_meta( $post->ID, '_wp_attached_file', true) ) {
    //Get attached file
        if ( ($uploads = wp_upload_dir()) && false === $uploads['error'] ) {
        //Get upload directory
            if ( 0 === strpos($file, $uploads['basedir']) )
            //Check that the upload base exists in the file location
                //$url = str_replace($uploads['basedir'], $uploads['baseurl'], $file);
                //replace file location with url location
                $url=$file_dir.'/wp-content/uploads/'.$file;
            elseif ( false !== strpos($file, 'wp-content/uploads') )
                //$url = $uploads['baseurl'] . substr( $file, strpos($file, ‘wp-content/uploads’) + 18 );
                $url=$file_dir.'/wp-content/uploads/'.$file;
            else
                //$url = $uploads['baseurl'] . “/$file'';
                //Its a newly uploaded file, therefor $file is relative to the basedir.
                $url=$file_dir.'/wp-content/uploads/'.$file;
        }
    }
    if ( empty($url) )
    //If any of the above options failed, Fallback on the GUID as used pre-2.7, not recomended to rely upon this.
        $url = get_the_guid( $post->ID );
    if ( 'attachment' != $post->post_type || empty($url) )
        return false;
    return apply_filters( 'wp_get_attachment_url', $url, $post->ID );
}


你可能感兴趣的:(PHP,wordpress)