wp_install_defaults() │ WP 2.1.0
Створює контент за замовчуванням для нововстановлюваного сайту: базові рубрики, пости, сторінки тощо.
Додає:
- категорію “без категорії” за замовчуванням.
- перший пост (з коментарем).
- першу сторінку.
- сторінку “Політика конфіденційності”.
- стандартні віджети для теми за промовчанням.
Вся суть цієї функції в тому, що її можна перевизначити у звичайному чи мю-плагіні . Таким чином, можна встановити свої параметри створення базового контенту під час встановлення сайту або налаштувати сайт під час створення чергового сайту мережі мультисайт.
Читайте також питання: Перевизначення wp_install_defaults() .
- Global. wpdb. $wpdb
- Global. WP_Rewrite. $wp_rewrite
- Global. Рядок. $table_prefix
Хуків немає.
Повертає
null. Нічого.
Використання
wp_install_defaults( $user_id );
- $user_id
(число) (обов’язковий) - ID користувача – адміністратора сайту мережі.
Приклади
0
#1 Дефольтні опції для сайту мережі
Приклад показує, як встановити дефолтні опції під час створення сайту чи сайту мережі. Для цього потрібно мю-плагін ) з наступним вмістом:
<?php
/*
* Plugin Name: Custom Installation Script
* Description: Плагін для автоматичного створення сторінок та категорій на нових сайтах мережі
*/
function wp_install_defaults( $user_id ){
update_option( 'permalink_structure', '/%postname%/');
// Не показувати привітання
update_user_meta($user_id, 'show_welcome_panel', 0);
// Активація теми
update_option('template', 'hb-base-theme');
update_option( 'stylesheet', 'hb-event' );
update_option('current_theme', 'hb-event');
}
нотатки
- Global. wpdb. $wpdb WordPress database abstraction object.
- Global. WP_Rewrite. $wp_rewrite WordPress rewrite component.
- Global. Рядок. $table_prefix
список змін
| З версії 2.1.0 | Введено. |
Код wp_install_defaults() wp install defaults WP 6.0.2
function wp_install_defaults( $user_id ) {
Global $wpdb, $wp_rewrite, $table_prefix;
/ / Default category.
$cat_name = __( 'Uncategorized' );
/* translators: Default category slug. */
$cat_slug = sanitize_title( _x( 'Uncategorized', 'Default category slug' ) );
if ( global_terms_enabled() ) {
$cat_id = $wpdb->get_var( $wpdb->prepare( "SELECT cat_ID FROM {$wpdb->sitecategories} WHERE category_nicename = %s", $cat_slug ) );
if ( null == $cat_id ) {
$wpdb->insert(
$wpdb->sitecategories,
array(
'cat_ID' => 0,
'cat_name' => $cat_name,
'category_nicename' => $cat_slug,
'last_updated' => current_time( 'mysql', true ),
)
);
$cat_id = $wpdb->insert_id;
}
update_option( 'default_category', $ cat_id );
} else {
$ cat_id = 1;
}
$wpdb->insert(
$wpdb->terms,
array(
'term_id' => $cat_id,
'name' => $cat_name,
'slug' => $cat_slug,
'term_group' => 0,
)
);
$wpdb->insert(
$wpdb->term_taxonomy,
array(
'term_id' => $cat_id,
'taxonomy' => 'category',
'description' => '',
'parent' => 0,
'count' => 1,
)
);
$cat_tt_id = $wpdb->insert_id;
/ / First post.
$now = current_time( 'mysql');
$now_gmt = current_time( 'mysql', 1);
$first_post_guid = get_option( 'home' ) . '/? p = 1';
if ( is_multisite() ) {
$first_post = get_site_option( 'first_post');
if ( ! $first_post ) {
$first_post = "<!-- wp:paragraph -->n<p>" .
/* translators: First post content. %s: Site link. */
__( 'Welcome to %s. This is your first post. Edit or delete it, then start writing!' ) .
"</p>n<!-- /wp:paragraph -->";
}
$first_post = sprintf(
$first_post,
sprintf( '<a href="%s">%s</a>', esc_url( network_home_url() ), get_network()->site_name )
);
// Back-compat for pre-4.4.
$first_post = str_replace( 'SITE_URL', esc_url( network_home_url() ), $first_post );
$first_post = str_replace( 'SITE_NAME', get_network()->site_name, $first_post );
} else {
$first_post = "<!-- wp:paragraph -->n<p>" .
/* translators: First post content. %s: Site link. */
__( 'Welcome to WordPress. Це означає, що ви отримаєте перше повідомлення. Еdit або delete it, then start writing!' ) .
"</p>n<!-- /wp:paragraph -->";
}
$wpdb->insert(
$wpdb->posts,
array(
'post_author' => $user_id,
'post_date' => $now,
'post_date_gmt' => $now_gmt,
'post_content' => $first_post,
'post_excerpt' => '',
'post_title' => __( 'Hello world!' ),
/* translators: Default post slug. */
'post_name' => sanitize_title( _x( 'hello-world', 'Default post slug' ) ),
'post_modified' => $now,
'post_modified_gmt' => $now_gmt,
'guid' => $first_post_guid,
'comment_count' => 1,
'to_ping' => '',
'pinged' => '',
'post_content_filtered' => '',
)
);
if ( is_multisite() ) {
update_posts_count();
}
$wpdb->insert(
$wpdb->term_relationships,
array(
'term_taxonomy_id' => $cat_tt_id,
'object_id' => 1,
)
);
// Default comment.
if ( is_multisite() ) {
$first_comment_author = get_site_option( 'first_comment_author');
$first_comment_email = get_site_option( 'first_comment_email');
$first_comment_url = get_site_option( 'first_comment_url', network_home_url() );
$first_comment = get_site_option( 'first_comment');
}
$first_comment_author =! empty($first_comment_author)? $first_comment_author : __( 'A WordPress Commenter' );
$first_comment_email =! empty($first_comment_email)? $first_comment_email : 'wapuu@wordpress.example';
$first_comment_url =! empty($first_comment_url)? $first_comment_url : esc_url( __( 'https://wordpress.org/' ) );
$first_comment =! empty($first_comment)? $first_comment : sprintf(
/* translators: %s: Gravatar URL. */
__(
'Hi, this is a comment.
Щоб отримати started with moderating, editing, і deleting comments, please visit Comments screen in dashboard.
Commenter avatars come from <a href="%s">Gravatar</a>.'
),
esc_url( __( 'https://en.gravatar.com/' ) )
);
$wpdb->insert(
$wpdb->comments,
array(
'comment_post_ID' => 1,
'comment_author' => $first_comment_author,
'comment_author_email' => $first_comment_email,
'comment_author_url' => $first_comment_url,
'comment_date' => $now,
'comment_date_gmt' => $now_gmt,
'comment_content' => $first_comment,
'comment_type' => 'comment',
)
);
/ / First page.
if ( is_multisite() ) {
$first_page = get_site_option( 'first_page');
}
if ( empty( $first_page ) ) {
$first_page = "<!-- wp:paragraph -->n<p>";
/* translators: First page content. */
$first_page .= __( "Ця мова йде про автентичну сторінку. Вона є різною від blog post because його буде в одному місці і буде відображатися в вашій мережі навколишнього середовища (в найбільшій темі). це потенційний сайт глядачів.
$first_page .= "</p>n<!-- /wp:paragraph -->nn";
$first_page .= "<!-- wp:quote -->n<blockquote class="wp-block-quote"><p>";
/* translators: First page content. */
$first_page .= __( "Hi there! I'm bike messenger by day, aspiring actor by night, і це є моя website. Я живу в Los Angeles, має великий хлопець намічений Jack, і I як piñ a coladas.(And gettin' caught in the rain.)" );
$first_page .= "</p></blockquote>n<!-- /wp:quote -->nn";
$first_page .= "<!-- wp:paragraph -->n<p>";
/* translators: First page content. */
$first_page .= __( '...or something like this:' );
$first_page .= "</p>n<!-- /wp:paragraph -->nn";
$first_page .= "<!-- wp:quote -->n<blockquote class="wp-block-quote"><p>";
/* translators: First page content. */
$first_page .= __( 'The XYZ Doohickey Company була заснована в 1971, і буде been providing quality doohickeys до громадського ever since. Розміщений в Gotham City, XYZ трудиться понад 2,000 людей і кому їсти. ');
$first_page .= "</p></blockquote>n<!-- /wp:quote -->nn";
$first_page .= "<!-- wp:paragraph -->n<p>";
$first_page .= sprintf(
/* translators: First page content. %s: Site admin URL. */
__( 'Як новий WordPress user, ви повинні йти до <a href="%s">на вашій табличці</a> до delete цю сторінку і створити нові сторінки для свого content. Have fun!' ),
admin_url()
);
$first_page .= "</p>n<!-- /wp:paragraph -->";
}
$first_post_guid = get_option( 'home' ) . '/?page_id=2';
$wpdb->insert(
$wpdb->posts,
array(
'post_author' => $user_id,
'post_date' => $now,
'post_date_gmt' => $now_gmt,
'post_content' => $first_page,
'post_excerpt' => '',
'comment_status' => 'closed',
'post_title' => __( 'Sample Page' ),
/* translators: Default page slug. */
'post_name' => __( 'sample-page' ),
'post_modified' => $now,
'post_modified_gmt' => $now_gmt,
'guid' => $first_post_guid,
'post_type' => 'page',
'to_ping' => '',
'pinged' => '',
'post_content_filtered' => '',
)
);
$wpdb->insert(
$wpdb->postmeta,
array(
'post_id' => 2,
'meta_key' => '_wp_page_template',
'meta_value' => 'default',
)
);
// Privacy Policy page.
if ( is_multisite() ) {
// Disable by default unless the suggested content is provided.
$privacy_policy_content = get_site_option( 'default_privacy_policy_content' );
} else {
if ( ! class_exists( 'WP_Privacy_Policy_Content' ) ) {
include_once ABSPATH . 'wp-admin/includes/class-wp-privacy-policy-content.php';
}
$privacy_policy_content = WP_Privacy_Policy_Content::get_default_content();
}
if ( ! empty( $privacy_policy_content ) ) {
$privacy_policy_guid = get_option('home'). '/?page_id=3';
$wpdb->insert(
$wpdb->posts,
array(
'post_author' => $user_id,
'post_date' => $now,
'post_date_gmt' => $now_gmt,
'post_content' => $privacy_policy_content,
'post_excerpt' => '',
'comment_status' => 'closed',
'post_title' => __( 'Privacy Policy' ),
/* translators: Privacy Policy page slug. */
'post_name' => __( 'privacy-policy' ),
'post_modified' => $now,
'post_modified_gmt' => $now_gmt,
'guid' => $privacy_policy_guid,
'post_type' => 'page',
'post_status' => 'draft',
'to_ping' => '',
'pinged' => '',
'post_content_filtered' => '',
)
);
$wpdb->insert(
$wpdb->postmeta,
array(
'post_id' => 3,
'meta_key' => '_wp_page_template',
'meta_value' => 'default',
)
);
update_option( 'wp_page_for_privacy_policy', 3);
}
// Set up default widgets for default theme.
update_option(
'widget_block',
array(
2 => array( 'content' => '<!-- wp:search /-->' ),
3 => array( 'content' => '<!-- wp:group --><div class="wp-block-group"><!-- wp:heading --><h2>' . __( 'Recent Posts' ) .'</h2><!-- /wp:heading --><!-- wp:latest-posts /--></div><!-- /wp:group --> '),
4 => array( 'content' => '<!-- wp:group --><div class="wp-block-group"><!-- wp:heading --><h2>' . __( 'Recent Comments' ) . '</h2><!-- /wp:heading --><!-- wp:latest-comments {"displayAvatar":false,"displayDate":false,"displayExcerpt":false} /--></div><!-- /wp:group -->' ),
5 => array( 'content' => '<!-- wp:group --><div class="wp-block-group"><!-- wp:heading --><h2>' . __( 'Archives' ) .'</h2><!-- /wp:heading --><!-- wp:archives /--></div><!-- /wp:group -->' ),
6 => array( 'content' => '<!-- wp:group --><div class="wp-block-group"><!-- wp:heading --><h2>' . __( 'Categories' ) .'</h2><!-- /wp:heading --><!-- wp:categories /--></div><!-- /wp:group -->' ),
'_multiwidget' => 1,
)
);
update_option(
'sidebars_widgets',
array(
'wp_inactive_widgets' => array(),
'sidebar-1' => array(
0 => 'block-2',
1 => 'block-3',
2 => 'block-4',
),
'sidebar-2' => array(
0 => 'block-5',
1 => 'block-6',
),
'array_version' => 3,
)
);
if ( ! is_multisite() ) {
update_user_meta ($ user_id, 'show_welcome_panel', 1);
} elseif ( ! is_super_admin( $user_id ) && ! metadata_exists( 'user', $user_id, 'show_welcome_panel' ) ) {
update_user_meta ($ user_id, 'show_welcome_panel', 2);
}
if ( is_multisite() ) {
// Flush rules to натиснути на нову сторінку.
$wp_rewrite->init();
$wp_rewrite->flush_rules();
$user = new WP_User( $user_id );
$wpdb->update( $wpdb->options, array( 'option_value' => $user->user_email ), array( 'option_name' => 'admin_email' ) );
// Remove all perms except for the login user.
$wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->usermeta WHERE user_id != %d AND meta_key = %s", $user_id, $table_prefix . 'user_level' ) );
$wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->usermeta WHERE user_id != %d AND meta_key = %s", $user_id, $table_prefix . 'capabilities' ) );
// Delete any caps that snuck into previously active blog. (Hardcoded to blog 1 for now.)
// TODO: Get previous_blog_id.
if ( ! is_super_admin( $user_id ) && 1 != $user_id ) {
$wpdb->delete(
$wpdb->usermeta,
array(
'user_id' => $user_id,
'meta_key' => $wpdb->base_prefix . '1_capabilities',
)
);
}
}
}Зв’язані функції
Розширення WP (додаткові можливості реєстрація)
Без рубрики
- _doing_it_wrong()
- cache_javascript_headers()
- do_robots()
- download_url()
- get_privacy_policy_url()
- maybe_convert_table_to_utf8mb4()
- nocache_headers()
- show_admin_bar()
- wp_check_browser_version()
- wp_die()
- wp_editor()
- wp_get_raw_referer()
- wp_get_referer()
- wp_magic_quotes()
- wp_mail()
- wp_oembed_get()
- wp_redirect()
- wp_safe_redirect()
- wp_star_rating()