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 : '[email protected]'; $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()
- wp_validate_redirect()