//
Поддержка объекта SVG
functions.php следующие строки
function wpcontent_svg_mime_type( $mimes = array() ) {
$mimes[‘svg’] = ‘image/svg+xml’;
$mimes[‘svgz’] = ‘image/svg+xml’;
return $mimes;
}
add_filter( ‘upload_mimes’, ‘wpcontent_svg_mime_type’ );
Переезд в новую локацию
Изменить в wp_options параметры siteurl и home, в противном случае будет упорный редирект на прежний адрес.
Изменение префикса
Если таблиц существующего сайта необходимо изменить префикс, это возможно осуществить. Дальше будет приведен пример изменения базового префикса wp_ на en_
Префикс определяется в файле wp-config.php строкой:
1 |
$table_prefix = 'en_'; |
Сразу после изменения wp-config.php любые действия с сайтом будут нуждаться в наличии таблиц с новым префиксом, а не находя их WordPress предложит создать их новыми и пустыми, как при инсталляции. Если нужны старые таблицы, то их можно получить путем переименования старых:
1 2 3 4 5 6 7 8 9 10 11 |
rename table wp_comments to en_comments, wp_links to en_links, wp_options to en_options, wp_postmeta to en_postmeta, wp_posts to en_posts, wp_term_relationships to en_term_relationships, wp_terms to en_terms, wp_usermeta to en_usermeta, wp_users to en_users, wp_comments to en_comments |
Если префикс изменяется для внутреннего клонирования сайта без создания новой DB, то таблицы можно клонировать:
1 2 3 4 5 6 7 8 9 |
create table en_comments as select * from wp_comments; create table en_links as select * from wp_links create table en_options as select * from wp_options create table en_postmeta as select * from wp_postmeta create table en_posts as select * from wp_posts create table en_term_relationships as select * from wp_term_relationships create table en_terms as select * from wp_terms create table en_usermeta as select * from wp_usermeta create table en_users as select * from wp_users |
После появления в DB таблиц с правильным префиксом, WordPress заработает, но не корректно. В первую очередь проявится нарушение прав доступа у пользователей, и даже администратора – после логина консоль не будет отображаться совершенно. Это связано с тем, что в именах параметров управляющих доступом также используется префикс, который необходимо исправить:
1 |
update en_options set option_name = 'en_user_roles' where option_name = 'wp_user_roles' |
и
1 2 3 4 5 |
update en_usermeta set option_name = 'en_capabilities' where option_name = 'wp_capabilities' update en_usermeta set option_name = 'en_user_level' where option_name = 'wp_user_level' update en_usermeta set option_name = 'en_user-settings' where option_name = 'wp_user-settings' update en_usermeta set option_name = 'en_user-settings-time' where option_name = 'wp_user-settings-time' update en_usermeta set option_name = 'en_dashboard_quick_press_last_post_id' where option_name = 'wp_dashboard_quick_press_last_post_id' |
//
Перенос данных между DB
Перенос настроек темы WEN Travel из wp_options в en_options
1 2 3 4 |
update en_options set option_value = (select option_value from wp_options where wp_options.option_name = 'theme_mods_wen-travel') where en_options.option_name = 'theme_mods_wen-travel' |
Перенос метаданных постов, страниц и медиафайлов из wp_postmeta в en_postmeta:
1 2 3 4 |
insert into en_postmeta (post_id, meta_key, meta_value) select post_id, meta_key, meta_value from wp_postmeta where post_id in (select id from wp_posts) and post_id not in (select id from en_posts) |
Перенос постов, станиц и медиафайлов из wp_posts в en_posts
1 2 3 4 |
insert into en_posts (ID, post_author, post_date, post_date_gmt, post_content, post_title, post_excerpt, post_status, comment_status, ping_status, post_password, post_name, to_ping, pinged, post_modified, post_modified_gmt, post_content_filtered, post_parent, guid, menu_order, post_type, post_mime_type, comment_count) select ID, post_author, post_date, post_date_gmt, post_content, post_title, post_excerpt, post_status, comment_status, ping_status, post_password, post_name, to_ping, pinged, post_modified, post_modified_gmt, post_content_filtered, post_parent, guid, menu_order, post_type, post_mime_type, comment_count from wp_posts where wp_posts.id not in (select id from en_posts) |
//