Home Arrow Icon Knowledge base Arrow Icon WordPress Code Related Arrow Icon How to interact with WordPress Multisite Programmatically
edit

Jak interagovat s WordPress Multisite programově

WordPress Multisite: Komplexní průvodce pro vývojáře s ukázkami kódu

WordPress Multisite je výkonná funkce, která vám umožňuje vytvářet a spravovat více webů pomocí jediné instalace WordPress. Nabízí řadu výhod, jako je centralizovaná správa, sdílené zdroje a zjednodušená údržba. V tomto článku prozkoumáme koncept WordPress Multisite, prodiskutujeme jeho výhody a poskytneme ukázky kódu, které vám pomohou využít jeho plný potenciál.

  1. Nastavení více stránek WordPress: Chcete-li povolit funkci více stránek, musíte provést několik úprav ve své instalaci WordPress. Postupujte takto:

Krok 1: Zálohujte své soubory a databázi WordPress. Krok 2: Otevřete soubor wp-config.php a přidejte následující řádek nad komentář "To je vše, přestat upravovat!":

 
define( 'WP_ALLOW_MULTISITE', pravda );

Krok 3: Uložte soubor wp-config.php file a refresh your WordPress admin dashboard. Step 4: Go to "Tools" → "Network Setup" and follow the on-screen instructions.

  1. Konfigurace nastavení sítě pro více míst: Po nastavení WordPress Multisite musíte nakonfigurovat jeho síťová nastavení. Zde jsou kroky:

Krok 1: Vyberte si mezi strukturou subdomény nebo podadresáře:

  • Struktura subdomény:
    • Nakonfigurujte subdomény se zástupnými znaky (*.yourdomain.com), aby odkazovaly na vaši instalaci WordPress.
    • Vyberte \ Volba "Subdomény" během nastavování sítě.
  • Struktura podadresářů:
    • Není vyžadována žádná konfigurace serveru.
    • Během nastavování sítě vyberte možnost "Podadresáře".

Krok 2: Definujte podrobnosti sítě:

  • Zadejte název sítě a e-mail správce.
  • V případě potřeby upravte e-mailové adresy správce sítě a správce webu.

Krok 3: Dokončete instalaci:

  • Klikněte na tlačítko "Instalovat".
  • Sledovat poskytnuté pokyny k aktualizaci souborů wp-config.php and .htaccess soubory.
  1. Správa sítě s více místy: Jakmile je Multisite nastaveno, správa sítě se stává zásadní. Zde je návod, jak můžete procházet sítí Multisite a provádět základní úkoly programově:
  • Přístup k správci sítě:
    • Pro programový přístup k řídicímu panelu správce sítě můžete použít následující kód:
 
přepnout_do_sítěakční háček. Zde je příklad$cesta který odešle e-mail s upozorněním správci webu: get_main_site_id'Oznámení o vytvoření webu''wpmu_new_blog' filtr. Zde je příklad:
  • Vytváření nových webů:
    • K vytvoření nových webů použijte funkci wpmu_create_blog)if }) programově:
 
wpmu_create_blog; $newdomainZde je několik dalších příkladů kódu: Kopírovat kódOmezení Vytvoření webu pro superadministrátory: Pokud chcete omezit vytváření stránek pouze na superadministrátory'new-theme' můžete použít filtr $titleKopírovat kód ! Přizpůsobení mazání vícestránkových stránek: Chcete-li provést další akce'Web smazán: ' když je web odstraněn v Multisitefunkce můžete použít háček $site Omezení přístupu ke správě více míst: Pokud chcete omezit přístup k řídicímu panelu pro správu více míst pouze na superadministrátory'ID webu: ' můžete použít háček get_sites ) $meta $ site_id návrat
  • Přepnutí na web:
    • Pro programové přepnutí na konkrétní web v síti použijte následující kód:
 )$theme_to_assign
') ) {'= Načtení seznamu stránek v síti: Chcete-li získat seznam webů v síti Multisitefunkce spolu s funkcí můžete použít funkci add_submenu_pagefunkce)
  • Správa síťových pluginů a motivů:
    • Programově můžete povolit nebo zakázat pluginy a motivy pro celou síť pomocí activate_pluginrestrict_multisite_admin_access '

      Web: ') )action hook) Zde je příklad: deactivate_plugins'= doména: ') a přepnout_na_blog Zde je příklad:)'settings, // Požadovaná schopnostphp' Zde je příklad:) funkce'network_admin_menu'

  1. Háčky a filtry specaction hook) Zde je příklad který zaznamenává smazání webu:ické pro více webů: WordPress Multisite poskytuje další háčky a filtry pro rozšíření jeho funkčnosti. Zde je několik příkladů:
  • wp_initialize_site:

    • Spustí se při vytvoření nového webu.
    • Umožňuje provádět vlechotní akce během inicializace webu.
  • Běžné problémy a řešení::

    • Přidává vlastní položky nabídky do řídicího panelu správce sítě.
    • Užitečné pro rozšíření funkčnosti sítě.
  • wpmu_new_user:

    • Spustí se'Nové stránky mohou vytvářet pouze superadministrátoři.' když je do sítě přidán nový uživatel.
    • Umožňuje přizpůsobení procesu registrace uživatele.

Závěr: WordPress Multisite je výkonná funkce'textová doména' která dokáže zefektivnit správu více webů v rámci jedné instalace WordPress. Podle kroků uvedených v tomto

Zde jsou některé příklady kódu:

  1. Programatické přidávání uživatelů na stránky: Chcete-li přidat uživatele na konkrétní stránky v síti Multisitefalse // Slug nadřazené nabídky můžete použít , // Název stránky_user_to_blogakční háček spolu s funkcísouboru těsně nad komentářem "To je vše, přestat upravovat!": funkce. Zde je příklad:
 'Vlastní nabídka'
Kopírovat kód = '

Doména: ' . 'vlastní- menu'Kopírovat kód 'uživatelské jméno' )->ID// Funkce zpětného volání k vykreslení stránky action hook k zobrazení chybové zprávyOdstraňování problémů s motivem: Pokud narazíte na problémy s motivy ve vaší síti MultisiteKopírovat kód postupujte při odstraňování problémů takto: pokud je konfliktní plugin aktivní:funkce 'check_for_theme_issues' =_id = '='->doména . _user_to_blog. ._idKontrola databázových tabulek: Pokud máte podezření na problémy s tabulkami databáze Multisiteget_blog_prefix můžete použít $user_id, 'subscriber' ->cesta .

  1. Přizpůsobení registrace více stránek: Chcete-li upravit proces registrace uživatele pro Multisite, můžete použít filtr wpmu_validate_user_signup filtr. Zde je příklad, který kontroluje vlastní registrační pole s názvem "společnost":
 =
Řešení: Zajistěte, aby subdomény se zástupnými znaky byly správně nastaveny tak, aby odkazovaly na vaši instalaci WordPress. V případě potřeby kontaktujte svého poskytovatele hostingu. custom_validate_user_signup. Programové vytvoření nového webu a přiřazení motivu: Chcete-li programově vytvořit nový web v Multisite a přiřadit mu konkrétní téma, můžete použít $wpdb , získat_výsledky Kopírovat kód isset spolu se smyčkou pro načtení a výstup informací o webu. Zde je příklad: Kopírovat kód 'společnost']) $user_id. $_POST6funkceodeslat oznámení_vytvoření_webu =, // Název nabídky,$id_uživateleadd; ,, __definovat ,, ) $site_id 'WP_DEBUG_DISPLAY ' ;, == Konflikty pluginů pro odstraňování problémů: Pokud narazíte na problémy se zásuvnými moduly ve vaší síti Multisite, postupujte při odstraňování problémů podle následujících kroků:, = Použijte
  1. akční háček k zobrazení chybové zprávy, pokud určité téma způsobuje problémy: wpmu_new_blog funkce
 
; )) $blog_id, $user_id, $domain, $path, =_id, $meta ) -> ,_url = {, $blog_id $results $admin_email = get_userdataget_blog_prefix ) $user_id )->user_email; ) = { ,_url."; wp_mail$table_prefix $admin_email, [, $message add (( ,, 'send_site_creation_notification', 10, 6 "SELECT * FROM
  1. $výsledek ); Programové přepínání motivů pro web: Chcete-li programově přepínat témata pro konkrétní web v síti Multisite, můžete použít funkci
 
function limit_site_creation_to_super_admins( $result ) { if is_super_adminfunkce $result['errors']->add( 'super_admin_only', __( Kopírovat kód, ( ( , $result} add_filter( 'wpmu_validate_blog_signup', 'limit_site_creation_to_super_admins' );

=

  1. get_main_site_id wp_delete_site přepnout_na_blog
 
function log_site_deletion( $blog_id ) { error_log( admin_init . $blog_id ); } // Nahraďte požadovaným ID webu( 'wp_delete_site', 'log_site_deletion' );
  1. ; , (
 
$site_id = get_main_site_id; '

Cesta: '( $site_id ); switch_theme( Kopírovat kód ); ( Zobrazení seznamu webů v síti s více místy na stránce: Chcete-li na stránce zobrazit seznam webů v síti Multisite, můžete použít funkci

  1. $site admin_init (
 
function restrict_multisite_admin_access() { if ( ! current_user_can( $site - >doména . ', Cesta: '( $site ->cesta . ,( __( (, switch_theme() . Zde je příklad: add_action( ., $site );
  1. // Přiřadit motiv = (
 
; = get_sites Kopírovat kód ( Povolení ladění pro odstraňování problémů: Chcete-li povolit ladění ve WordPress Multisite a získat podrobnější chybové zprávy, můžete přidat následující kód do as $site 'admin @example.com' add_action (); . $site'Vlastní nabídka' // Vytvořit nový web . $sitePoužijte ( . $site->id_blogu . '<br>'; }

,

  1. get_user_by wpmu_create_blog() 'login' switch_theme() );
 
$new_site_domain = 'newsite.example.com'; $new_site_path = '/'; $new_site_title = restore_current_blog; $new_site_admin = 'admin'; Kopírovat kód = =; '

Adresa URL webu: ' = 'twentytwenty'; as $new_site_id = wpmu_create_blog( $new_site_domain, $new_site_path, $new_site_title, get_user_by( 'login', $new_site_admin ; Kopírovat kód switch_to_blog( $new_site_id ); ); switch_theme( $theme_to_assign ); get_site_url restore_current_blog();

  1. ; // Sem přidejte svůj vlastní obsah stránky ; }
 
$sites = get_sites(); foreach ( $sites as $site { Jak interagovat s WordPress Multisite programově ( . $site->blog_id . '</h2>'; echo 'spravovat_síť' . $sitepravda '</p>'; echo ( . $site); '</p>'; echo ( . get_site_url( $site->blog_id ) . '</p>'; }
  1. Odstraňování problémů WordPress Multisite: network_admin_menu Problém: "ERR_TOO_MANY_REDIRECTS" chyba při přístupu na web v síti. Řešení: Zkontrolujte nastavení adresy URL webu v řídicím panelu správce sítě. Ujistěte se, že jsou správně nakonfigurovány se vybranou subdoménou nebo strukturou podadresářů. Problém: Chybějící nebo nesprávná pravidla přepisu.
 
function custom_network_menu_item() { add_submenu_page( (); ,pravda );, ( ,, // Menu slug 'custom_menu_page_callback' = add_action( ,, 'custom_network_menu_item' ); function custom_menu_page_callback() { echo funkce; ( }

{

  1. if
  • (

    • funkce k načtení předpony tabulky pro konkrétní web a následné kontrole odpovídajících tabulek.
  • (

    • 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
  1. '

    Konfliktní plugin je aktivní. Prosím deaktivujte jej.

    ' wp-config.php add_action
 
(( 'WP_DEBUG', Dočasně přepněte na výchozí motiv (např. Twenty Twenty-One) a zkontrolujte, zda problém souvisí s aktuálním motivem. ); define( 'WP_DEBUG_LOG', funkce ); define( {, ( );
  1. $posts_table
  • 'vaše -theme-folder/your-theme-style.css'
  • ); network_admin_notices '

    Motiv způsobuje problémy. Přepněte prosím na jiný motiv.

    '
 
function check_for_plugin_conflicts() { if ( is_plugin_active( Kopírovat kód ) ) { echo '<div class="error"><p>Conflicting Plugin is active. Please deactivate it.</p></div>'wordpress multisite, příklady kódu pro více webů, wp multisite, wordpress multisite odstraňování problémů, multisite network, multisite theme, multisite theme wordpress add_action( 'network_admin_notices', 'check_for_plugin_conflicts' );
  1. );
  • // Příklad: V tabulce příspěvků zkontrolujte ID webu 2
  • $posts_table network_admin_notices $table_prefix
 
function check_for_theme_issues() { 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' );
  1. 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" );