wp_install_defaults() │ WP 2.1.0 Створює контент за замовчуванням для нововстановлюваного сайту: базові рубрики, пости, сторінки тощо.
Додає:
категорію “без категорії” за замовчуванням. перший пост (з коментарем). першу сторінку. сторінку “Політика конфіденційності”. стандартні віджети для теми за промовчанням. Вся суть цієї функції в тому, що її можна перевизначити у звичайному чи мю-плагіні . Таким чином, можна встановити свої параметри створення базового контенту під час встановлення сайту або налаштувати сайт під час створення чергового сайту мережі мультисайт.
Global. wpdb. $wpdb Global. WP_Rewrite. $wp_rewrite Global. Рядок. $table_prefix Хуків немає.
Повертає null. Нічого.
Використання wp_install_defaults( $user_id ); $user_id (число) (обов’язковий) ID користувача – адміністратора сайту мережі. Приклади #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 список змін Код 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',
)
);
}
}
} Зв’язані функції