WordPress Multisite: En omfattende vejledning for udviklere med kodeeksempler
WordPress Multisite er en kraftfuld funktion, der giver dig mulighed for at oprette og administrere flere websteder ved hjælp af en enkelt WordPress-installation. Det giver adskillige fordele, såsom centraliseret styring, delte ressourcer og forenklet vedligeholdelse. I denne artikel vil vi udforske konceptet WordPress Multisite, diskutere dets fordele og give kodeeksempler for at hjælpe dig med at udnytte dets fulde potentiale.
- Opsætning af WordPress Multisite: For at aktivere Multisite-funktionalitet skal du foretage et par ændringer af din WordPress-installation. Følg disse trin:
Trin 1: Sikkerhedskopier dine WordPress-filer og database.
Trin 2: Åbn wp-config.php filen og tilføj følgende linje over "Det er alt, stop med at redigere!"-kommentaren:
define( 'WP_ALLOW_MULTISITE', true );
Trin 3: Gem wp-config.php file og refresh your WordPress admin dashboard.
Step 4: Go to "Tools" → "Network Setup" and follow the on-screen instructions.
- Konfiguration af multisite netværksindstillinger: Efter opsætning af WordPress Multisite skal du konfigurere netværksindstillingerne. Her er trinene:
Trin 1: Vælg mellem underdomæne eller undermappestruktur:
- Underdomænestruktur:
- Konfigurer jokertegn underdomæner (*.ditdomæne.com) til at pege på din WordPress-installation.
- Vælg \ "Underdomæner" valgmulighed under netværksopsætning.
- Undermappestruktur:
- Ingen serverkonfiguration er påkrævet.
- Vælg muligheden "Undermapper" under netværksopsætning.
Trin 2: Definer netværksdetaljer:
- Indtast netværkstitlen og administratorens e-mail.
- Tilpas netværksadministratorens og webstedsadministratorens e-mail-adresser, hvis det er nødvendigt.
Trin 3: Fuldfør installationen:
- Klik på knappen "Install".
- Følg de medfølgende instruktioner til at opdatere dine
wp-config.phpand.htaccessfiler.
- Administration af multisite-netværk: Når Multisite er sat op, bliver styring af netværket afgørende. Sådan kan du navigere gennem multisite-netværket og udføre vigtige opgaver programmatisk:
- Adgang til netværksadministrator:
- For at få adgang til netværksadministratorens dashboard programmatisk kan du bruge følgende kode:
switch_to_networkaction hook. Her er et eksempel$meddelelse der sender en notifikations-e-mail til webstedsadministratoren: get_main_site_id$domæne'wpmu_new_blog' . Her er et eksempel:
- Oprettelse af nye websteder:
- Brug
wpmu_create_blog)if })funktionen til at oprette nye websteder programmatisk:
- Brug
wpmu_create_blog; $newdomainHer er et par flere kodeeksempler: $pathBegrænset Oprettelse af websted til superadministratorer:
Hvis du vil begrænse oprettelsen af websteder til kun at være superadministratorer'fejl' kan du bruge filteret $titleer_super_admin ! 'kun super_admin'Tilpasning af multisite-sletning:
For at udføre yderligere handlinger'Site slettet: ' når et websted slettes i Multisitefunktion kan du bruge $site Begrænsning af adgang til multisite administration:
Hvis du vil begrænse adgangen til Multisite-administrationsdashboardet til kun Super Admins'Site-id: ' kan du bruge get_sites ) $meta'Meddelelse om oprettelse af websted' $ site_id retur
- Skhandlingskrogenhandlingskrogen. Her er et eksempel: Her er et eksempel der logger sletningen af et websted:t til et websted:
- For programmæssigt at skifte til et specifikt websted på netværket skal du bruge følgende kode:
 )$theme_to_assign') $sites'gendan_aktuel_blog Hentning af en liste over websteder i netværket:
For at hente en liste over websteder i Multisite-netværket kan du bruge Kopiér kode
- Administration af netværksplugins og temaer:
- Du kan programmæssigt aktivere eller deaktivere plugins og temaer for hele netværket ved hjælp af
activate_pluginrestrict_multisite_admin_access ')Websted: ') )
deactivate_plugins'nyt-tema')'Kun superadministratorer kan oprette nye websteder'Sti: '' og
funktionen'settings, // Kræver kapacitetphp' Her er et eksempel:'funktionen sammen med Domæne: ')funktioner'Almindelige problemer og løsninger:'
- Du kan programmæssigt aktivere eller deaktivere plugins og temaer for hele netværket ved hjælp af
- Multisite-specifikke kroge og filtre: WordPress Multisite giver yderligere kroge og filtre for at udvide dets funktionalitet) Her er et par eksempler:
wp_initialize_site:- Tænder'tekst-domæne' når et nyt websted oprettes.
- Giver dig mulighed for at udføre tilpechosede handlinger under initialisering af webstedet.
network_admin_menu:- Føjer brugerdefinerede menupunkter til netværksadmin-dashboardet.
- Nyttig til at udvide netværkets funktionalitet.
wpmu_new_user:- Udløseradd_submenu_pagefunktion) når en ny bruger tilføjes til netværket.
- Muliggør tilpasning af brugerregistreringsprocessen.
Konklusion: WordPress Multisite er en kraftfuld funktion, // Overordnet menu slug der kan strømline administrationen af flere websteder inden for en enkelt WordPress-installation. Ved at følge trinene beskrevet i dette
Her er nogle kodeeksempler:
- Programmatisk tilføjelse af brugere til websteder:
For at tilføje brugere til bestemte websteder i Multisite-netværket kan du bruge
false // Sidetitel_user_to_blogfilen lige over "Det er alt, stop med at redigere!"-kommentaren:funktionen. Her er et eksempel:handlingshook for at vise en fejlmeddelelse, hvis et modstridende plugin er aktivt:funktion. Her er et eksempel:
 action hook sammen medKopiér kode = 'Domæne: '
'BrugerFejlfinding af temaproblemer:
Hvis du støder på problemer med temaer i dit Multisite-netværkKopiér kode skal du følge disse trin for at fejlfinde:ret menu' 'custom- menu'Kopiér kode 'brugernavn' )->ID// Tilbagekaldsfunktion til at gengive siden
'check_for_theme_issues'funktion
)
=_id = '='->domæne .
_user_to_blog. ._idInspicering af databasetabeller:
Hvis du har mistanke om problemer med Multisite-databasetabellerneget_blog_prefix kan du bruge $user_id, 'subscriber' ->sti .
- Tilpasning af multisite-registrering:
Hvis du vil tilpasse brugerregistreringsprocessen for Multisite, kan du bruge
wpmu_validate_user_signupfilteret. Her er et eksempel, der søger efter et bruger=ret registreringsfelt med navnet "firma":
 =Løsning: Sørg for, at jokertegn-underdomæner er korrekt konfigureret til at pege på din WordPress-installation. Kontakt din hostingudbyder for at få hjælp, hvis det er nødvendigt. custom_validate_user_signup. . $wpdb ,
få_resultater Programmatisk oprettelse af et nyt websted og tildeling af et tema:
For programmæssigt at oprette et nyt websted i Multisite og tildele det et specifikt tema, kan du bruge issetKopiér kode Kopiér kode 'virksomhed'] ) $user_idfunktionen sammen med en loop til at hente og udlæse webstedsoplysningerne. Her er et eksempel: $_POST6funktion.
=, // Menutitel,$user_idadd; ,, __) ,, ) $site_id
) ;,
'WP_DEBUG_DISPLAY '= Fejlfinding af plugin-konflikter:
Hvis du støder på problemer med plugins i dit Multisite-netværk, skal du følge disse trin for at fejlfinde:, = Brug
- =
wpmu_new_blogfunktion
; send_site_creation_notificationhandlingskrogen til at vise en fejlmeddelelse, hvis et specifikt tema forårsager problemer: , $user_id, ,, $path, =_id, $meta ) ->
,_url = {, $blog_id check_for_theme_ssues
$admin_email = get_userdataget_blog_prefix ) $user_id )->user_email;
Kopiér kode = { ,_url.";
wp_mail$table_prefix $admin_email, [, ) add
(( ,, 'send_site_creation_notification', 10, 6 "SELECT * FROM
- $resultat
);Programmatisk skift af temaer til et websted: For at skifte temaer programmæssigt for et specifikt websted inden for Multisite-netværket, kan du bruge
function limit_site_creation_to_super_admins( $result ) {
if Kopiér kodefunktion
$result[$blog_id]->add( (, __( Kopiér kode, ( (
, $result}
add_filter( 'wpmu_validate_blog_signup', 'limit_site_creation_to_super_admins' );
=
- get_main_site_id
wp_delete_siteswitch_to_blog
function log_site_deletion( $blog_id ) {
error_log( admin_init . $blog_id );
}
// Erstat med det ønskede websteds-id( 'wp_delete_site', 'log_site_deletion' );
- ;
,(
$site_id = get_main_site_id;
switch_to_blog( $site_id );
switch_theme( Kopiér kode );
= Visning af en liste over websteder i et multisite-netværk på en side:
For at vise en liste over websteder i Multisite-netværket på en side, kan du bruge
- $site
admin_init(
function restrict_multisite_admin_access() {
if ( ! current_user_can( $site - >domæne . ', Sti: '( $site ->sti .
,( __( (, switch_theme() funktionen. Her er et eksempel:
add_action( $nyt_websted_domæne, 'nyt websted.eksempel.com' );
- $nyt_websted_sti
=(
; = get_sites
foreach ( Aktivering af fejlfinding til fejlfinding:
For at aktivere fejlretning i WordPress Multisite og få mere detaljerede fejlmeddelelser, kan du tilføje følgende kode til as $site 'admin @example.com'
add_action (); . $site->blog_id . // Opret det nye websted . $siteBrug ( . $site// Tildel temaet '<br>';
}
,
- get_user_by
wpmu_create_blog()'login'switch_theme());
. = $site;
'Brugerdefineret menu' = '/';
$new_site_title = (;
$new_site_admin = 'admin';
Kopiér kode = =;
'Webstedets URL: '
= 'twentytwenty';
as
$new_site_id = wpmu_create_blog( $new_site_domain, $new_site_path, $new_site_title, get_user_by( 'login', $new_site_admin ;
Kopiér kode
switch_to_blog( $new_site_id );
);
switch_theme( $theme_to_assign );
get_site_url
restore_current_blog();
- ;
// Tilføj dit brugerdefinerede sideindhold her; }
$sites = get_sites();
foreach ( $sites as $site {
Sådan interagerer du med WordPress Multisite Programmatically ( . $site->blog_id . '</h2>';
echo ( . $siteSkift midlertidigt til et standardtema (f.eks. Twenty Twenty-One) for at kontrollere, om problemet er relateret til det aktuelle tema. '</p>';
echo ( . $site); '</p>';
echo ( . get_site_url( $site->blog_id ) . '</p>';
}
- Fejlfinding af WordPress Multisite:
network_admin_menuProblem: "ERR_TOO_MANY_REDIRECTS" fejl ved adgang til et websted på netværket.Løsning: Tjek webstedets URL-indstillinger i netværksadministratorens dashboard. Sørg for, at de er korrekt konfigureret med det valgte underdomæne eller undermappestruktur.Problem: Manglende eller forkerte omskrivningsregler.
function custom_network_menu_item() {
add_submenu_page(
();
,funktion
);define
'manage_network'
,, // Menu slug
'custom_menu_page_callback' define
add_action( ,, 'custom_network_menu_item' );
function custom_menu_page_callback() {
echo funktion;
(
}
{
- if
(
- er_plugin_active
(
- Solution: Regenerate the Rewrite Rules by visiting the "Settings" → "Permalinks" page in the network admin dashboard and clicking the "Save Changes" button.
$site_id
- echo
- ''
Konfliktende plugin er aktiv. Deaktiver det venligst.
wp-config.phpadd_action
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( {, ( );
- $posts_table
- 'dit -theme-folder/your-theme-style.css'
- );
network_admin_notices''Temaet forårsager problemer. Skift venligst til et andet tema.
function check_for_plugin_conflicts() {
if ( funktion til at hente tabelpræfikset for et specifikt websted og derefter inspicere de tilsvarende tabeller.( Kopiér kode ) ) {
echo '<div class="error"><p>Conflicting Plugin is active. Please deactivate it.</p></div>'wordpress multisite, multisite kodeeksempler, wp multisite, wordpress multisite fejlfinding, multisite netværk, multisite tema, multisite tema wordpress
add_action( 'network_admin_notices', 'check_for_plugin_conflicts' );
- );
- // Eksempel: Undersøg indlægstabellen for site ID 2
- $posts_table
network_admin_notices$table_prefix
function $resultater() {
if ( get_stylesheet() === " ) {
echo '<div class="error"><p>Theme is causing issues. Please switch to a different theme.</p></div>';
}
}
add_action( 'network_admin_notices', 'check_for_theme_issues' );
- Inspecting Database Tables:
If you suspect issues with the Multisite database tables, you can use the
get_blog_prefix()function to retrieve the table prefix for a specific site and then inspect the corresponding tables.
$site_id = 2; // Replace with the desired site ID
$table_prefix = get_blog_prefix( $site_id );
// Example: Inspect the posts table for site ID 2
$posts_table = $table_prefix . 'posts';
$results = $wpdb->get_results( "SELECT * FROM $posts_table" );
