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

Vuorovaikutus WordPress Multisiten kanssa ohjelmallisesti

WordPress Multisite: Kattava opas koodinäytteitä käyttäville kehittäjille

WordPress Multisite on tehokas ominaisuusVaihe 3: Tallenna jonka avulla voit luoda ja hallita useita verkkosivustoja yhdellä WordPress-asennuksella. Se tarjoaa lukuisia etuja, kuten keskitetyn hallinnan, jaetut resurssit ja yksinkertaistetun ylläpidon. Tässä artikkelissa tutkimme WordPress Multisite -konseptia, keskustelemme sen eduista ja tarjoamme koodinäytteitä, joiden avulla voit hyödyntää sen täyden potentiaalin.

  1. WordPressin monisivuston määrittäminen: Ota Multisite-toiminto käyttöön sinun on tehtävä muutamia muutoksia WordPress-asennukseen. Noudata näitä ohjeita:

Vaihe 1: Varmuuskopioi WordPress-tiedostot ja -tietokanta. Vaihe 2: Avaa tiedosto ja päivitä WordPress-hallintapaneelisi. Vaihe 4: Siirry kohtaan "Työkalut" â "Network Setup" ja seuraa näytön ohjeita.

 
define( 'WP_ALLOW_MULTISITE', true );

wp-config.php wp-config.php file ja refresh your WordPress admin dashboard. Step 4: Go to "Tools" → "Network Setup" and follow the on-screen instructions.

  1. Monen sivuston verkkoasetusten määrittäminen: Kun olet määrittänyt WordPress Multisite -sovelluksen, sinun on määritettävä sen verkkoasetukset. Tässä ovat vaiheet:

Vaihe 1: Valitse aliverkkotunnus tai alihakemistorakenne:

  • Aliverkkotunnusrakenne:
    • Määritä jokerimerkkialiverkkotunnukset (*.omaverkkotunnus.com) osoittamaan WordPress-asennusta.
    • Valitse \ "Aliverkkotunnukset"-vaihtoehto verkon asennuksen aikana.
  • Alihakemistorakenne:
    • Palvelimen määrityksiä ei vaadita.
    • Valitse "Alihakemistot" verkkoasennuksen aikana.

Vaihe 2: Määritä verkon tiedot:

  • Anna verkon nimi ja järjestelmänvalvojan sähköpostiosoite.
  • Muokkaa verkonvalvojan ja sivuston järjestelmänvalvojan sähköpostiosoitteita tarvittaessa.

Vaihe 3: Viimeistele asennus:

  • Napsauta "Asenna"-painiketta.
  • Seuraa toimitetut ohjeet wp-config.php and .htaccess tiedostojen päivittämiseen.
  1. Monisivustoverkon hallinta: Kun Multisite on määritetty, verkon hallinnasta tulee ratkaisevaa. Näin voit navigoida Multisite-verkossa ja suorittaa tärkeitä tehtäviä ohjelmallisesti:
  • Verkon järjestelmänvalvojan käyttäminen:
    • Voit käyttää verkon järjestelmänvalvojan hallintapaneelia ohjelmallisesti käyttämällä seuraavaa koodia:
 
switch_to_networktoimintakoukku. Tässä on esimerkkirajoita_sivuston_luomista_super_järjestelmänvalvojille joka lähettää ilmoitussähköpostin sivuston ylläpitäjälle: get_main_site_id'Sivuston luomisilmoitus'__ -suodatinta. Tässä on esimerkki:
  • Uusien sivustojen luominen:
    • Käytä wpmu_create_blogUseiden sivustojen poistamisen mukauttaminen: Jos haluat suorittaa lisätoimia, kun sivusto poistetaan Multisitessa, voit käyttäätoimintokoukkua. Tässä on esimerkki, joka kirjaa lokiin sivuston poistamisen: }) -toimintoa luodaksesi uusia sivustoja ohjelmallisesti:
 
wpmu_create_blog; $newdomainTässä on vielä muutama koodiesimerkki: $pathRajoittaminen Sivuston luominen pääjärjestelmänvalvojille: Jos haluat rajoittaa sivuston luomisen vain pääjärjestelmänvalvojille'virheet' voit käyttää $titleon_super_admin ! 'uusi-teema'jos . Monen sivuston hallintaan pääsyn rajoittaminen: Jos haluat rajoittaa pääsyn Multisite-hallinnan hallintapaneeliin vain pääjärjestelmänvalvojille) voit käyttää -toimintoa. Tässä on esimerkki: $metaVerkon sivustoluettelon hakeminen: Voit noutaa luettelon Multisite-verkon sivustoista käyttämällä $ site_id palautus
  • Sivustoon vaihtaminen:
    • Voit vaihtaa ohjelmallisesti tietylle sivustolle verkossa käyttämällä seuraavaa koodia:
 // Määritä teema
-funktion kanssa. Tässä on esimerkki:palauta_nykyinen_blogi , // Päävalikon slug )Kopioi koodi) $uusi_sivuston_polku
  • Verkkolaajennusten ja teemojen hallinta:
    • Voit ohjelmallisesti ottaa käyttöön tai poistaa käytöstä laajennuksia ja teemoja koko verkossa käyttämällä activate_pluginrajoita_useiden_sivustojen_järjestelmänvalvojan_käyttöä)) Usean sivuston verkoston sivustoluettelon näyttäminen sivulla: Voit näyttää sivulla luettelon Multisite-verkon sivustoista käyttämällä)'Vain pääkäyttäjät voivat luoda uusia sivustojatoimintakoukkuaadd_submenu_pagecustom_network_menu_item) Tässä on esimerkki:' deactivate_pluginsnykyinen_user_can) ja 'Sivuston tunnus: ') funktiot=
  1. Monisivustokohtaiset koukut ja suodattimet: WordPress Multisite tarjoaa lisäkoukkuja ja suodattimia sen toimivuuden laajentamiseksi, // Sivun otsikko Tässä on muutamia esimerkkejä:
  • wp_initialize_site:

    • Sammutetaan'admin @example'custom- menu'com' kun uusi sivusto luodaan,
    • Voit suorittaa mukautettuja toimintoja sivuston alustuksen aikana{
  • Ongelma: "ERR_TOO_MANY_REDIRECTS" -virhe verkon sivustoa käytettäessä.:

    • Lisää mukautettuja valikkokohteita verkon järjestelmänvalvojan hallintapaneeliin.
    • Hyödyllinen laajentamaan verkon toimintoja.
  • wpmu_new_user:

    • Käynnistä'Sivusto poistettu: ' kun verkkoon lisätään uusi käyttäjä.
    • Mahdollistaa käyttäjän rekisteröintiprosessin mukauttamisen.

Johtopäätös: WordPress Multisite on tehok ominaisuustoiminto joka voi virtaviivaistaa useiden verkkosivustojen hallintaa yhdessä WordPress-asennuksessa. Noudattamalla tässä esitettyjä ohjeita

Tässä on joitain koodiesimerkkejä:

  1. Käyttäjien ohjelmallinen lisääminen sivustoille: Voit lisätä käyttäjiä tietyille sivustoille Multisite-verkostossa käyttämällä _user_to_blogKopioi koodi) funktio. Tässä on esimerkki:
 Kopioi koodi)as
Kopioi koodi = .Lisää koodia: ->verkkotunnus .'

Muokattu valikkosivu

'$uusi_sivusto_verkkotunnus); 'käyttäjätunnus' )->IDPoista kaikki laajennukset käytöstä verkossa ja tarkistaVaihda tilapäisesti oletusteemaan esim. Twenty Twenty-One) tarkistaaksesget_blog_prefixtoiminto hakee tietyn sivuston taulukon etuliite ja tarkastaa sitten vastaavat taulukot.->unktio liittyykö ongelma nykyiseen teemaan. jatkuuko ongelma. Jos ei'=' aktivoi jokainen laajennus uudelleen yksitellen ristiriitaisen liitännäisen tunnistamiseksi. // Valikon otsikko '

Sivusto: ' _id = 'uusisivusto.esimerkki.fi''toiminto' $uusi_sivustopolku_user_to_blogwpmu_create_blog'WP_DEBUG_DISPLAY ') 'Muokattu valikko'_id'

Teema aiheuttaa ongelmia. Vaihda toiseen teemaan.

' $user_id'

Domain:' 'tilaaja' // Takaisinsoittotoiminto sivun hahmontamiseen )WordPressin monisivuston vianmääritys:

  1. Monisivuston rekisteröinnin mukauttaminen: Jos haluat mukauttaa käyttäjien rekisteröintiprosessia MultisitelleVirheenkorjauksen ottaminen käyttöön vianmääritystä varten: Voit ottaa virheenkorjauksen käyttöön WordPress Multisitessa ja saada tarkempia virheilmoituksia lisäämällä seuraavan koodin voit käyttää wpmu_validate_user_signup -suodatinta. Tässä on esimerkki$wpdb joka tarkistaa mukautetun rekisteröintikentän "yritys":
 $table_prefix
Käytä custom_validate_user_signup Tietokantataulukoiden tarkastaminen: Jos epäilet ongelmia Multisite-tietokantataulukoiden kanssa, voit käyttää '

Sivuston URL-osoite: ' ) , "SELECT * FROM -tiedostoon "Siinä kaikki, lopeta muokkaaminen!" -kommentin yläpuolelle: isset, Kopioi koodi 'yritys'] ) $user_idtoimintokoukkua näyttääksesi virheilmoituksen, jos ristiriitainen laajennus on aktiivinen: $_POST6get_blog_prefixKopioi koodi ==,$user_idadd( ,, __( ,, ) Kopioi koodi ) switch_theme, (( toiminto, = "

  1. ( wpmu_new_blog toiminto
 
function send_site_creation_notification( , $user_id, $domain, $path, '$table_prefix'_id, $meta ) get_results ;_url = get_site_url( $blog_id ); $admin_email = get_userdata( $user_id )->user_email; ) = $tulos $site_url."; wp_mail( $admin_email, [, $message add Kopioi koodi( 'wpmu_new_blog', 'send_site_creation_notification', 10, 6 );
  1. $tulos ); Sivuston teemojen ohjelmallinen vaihtaminen: Voit vaihtaa teemoja ohjelmallisesti tietylle sivustolle Multisite-verkossa käyttämällä
 
function Kopioi koodi( { ) { if Kopioi kooditoiminto $result[$blog_id]->add( 'super_admin_only', __( Kopioi koodi, -funktion kanssa. Tässä on esimerkki: ( , $result, add_filter( 'wpmu_validate_blog_signup', 'limit_site_creation_to_super_admins' );

=

  1. get_main_site_id wp_delete_site .
 
function log_site_deletion( $blog_id ) { error_log( ( . $blog_id ); { add_action( 'wp_delete_site', 'log_site_deletion' );
  1. ', Verkkotunnus: ' ; (
 
$site_id = get_main_site_id= switch_to_blog( $site_id ); switch_theme( 'Uusi sivusto' ); get_sites->blogin_tunnus ) .
  1. admin_init (
 
function restrict_multisite_admin_access() { if ( ! .( - >verkkotunnus . ', Polku: ' .( ->polku . $uusi_sivuston_nimi ; }( __( -funktio yhdessä, 'text-domain' add_action( =, ; );
  1. = . ;
 
$sites = get_sitesKopioi koodi foreach ( $sites as $site ; Kopioi koodi = . $site->blog_id . ',' . $site( $uusi_sivuston_verkkotunnus . $site, '<br>'; }

get_user_by

  1. ( 'login' , switch_theme() (
 
( = );; switch_theme = '/'; // Palauta nykyinen sivusto = ();; $new_site_admin = 'admin'; $new_site_admin_email = get_sites; $theme_to_assign = 'twentytwenty'; $site ->polku . = wpmu_create_blog( $site, 'Muokattu valikko', (, get_user_by( 'login', $new_site_admin )->ID ); '

Polku: ' switch_to_blog( $new_site_id ); ; switch_theme( $theme_to_assign ); ( $site();

  1. } ; } Muokatun valikon luominen verkonvalvojan hallintapaneelissa: Voit lisätä mukautetun valikkokohdan Multisiten verkonvalvojan hallintapaneeliin käyttämällä
 
$sites = get_sites(); foreach ( $sites as $site Vuorovaikutus WordPressin monisivuston kanssa ohjelmallisesti 2 Teemaongelmien vianetsintä: Jos kohtaat ongelmia Multisite-verkon teemojen kanssa, suorita vianetsintä seuraavasti: . $site->blog_id . '</h2>'; Kuinka kehittäjät voivat käyttää WordPress-koodia vuorovaikutuksessa WordPress Multisiten kanssa. , // Tarvitaan ominaisuuksia . $sitetoimintakoukkua näyttääksesi virheilmoituksen, jos tietty teema aiheuttaa ongelmia: '</p>'; echo $posts_table . $site); '</p>'; echo ) . get_site_url( $site// Lisää mukautettu sivusi sisältö tähän '</p>'; }
  1. Yleiset ongelmat ja ratkaisut: network_admin_menu Ratkaisu: Tarkista sivuston URL-asetukset verkon järjestelmänvalvojan hallintapaneelissa. Varmista, että ne on määritetty oikein valitulla aliverkkotunnuksella tai alihakemistorakenteella. Ongelma: Puuttuvat tai virheelliset uudelleenkirjoitussäännöt. Ratkaisu: Luo uudelleenkirjoitussäännöt uudelleen käymällä "Asetukset" â "Pysyvät linkit" -sivulla verkon järjestelmänvalvojan hallintapaneelissa ja napsauta "Tallenna muutokset" -painiketta.
 
function custom_network_menu_item() { add_submenu_page( 'settings.php', Käytä); )( 'manage_network', tarkista_teeman_ongelmia, // Menu slug 'custom_menu_page_callback' ( add_action( 'network_admin_menu', laajennusten ristiriitojen vianetsintä: Jos kohtaat ongelmia Multisite-verkon laajennuksissa, suorita vianetsintä seuraavasti: ); function custom_menu_page_callback() { echo check_for_plugin_conflicts; ) }

if

  1. (
  • on_plugin_active

    • (
  • 'conflicting-plugin/conflicting) -plugin.php'

    • Solution: Regenerate the Rewrite Rules by visiting the "Settings" → "Permalinks" page in the network admin dashboard and clicking the "Save Changes" button.
  • echo

    • '

      Ristiriitainen laajennus on aktiivinen. Poista se käytöstä.

      '
  1. // Korvaa halutulla sivuston tunnuksella wp-config.php (
 
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( if, false );
  1. 'oma -theme-folder/your-theme-style.css'
  • ) {
  • echo network_admin_notices ; } }
 
function check_for_plugin_conflicts() { if ( ( $site_id = echo '<div class="error"><p>Conflicting Plugin is active. Please deactivate it.</p></div>'; } } add_action( 'network_admin_notices', $site_id );
  1. // Esimerkki: Tarkista sivustotunnuksen 2 viestitaulukko
  • $posts_table
  • = network_admin_notices .
 
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" );