Multisite eklentisi için 'Global' ayarlar sayfası


24

Çok bölgeli bir durumda kurulacak bir eklenti üzerinde çalışıyorum.

Yalnızca "Ağ yöneticisi" düzeyinde görünen tek bir ayar sayfasını nasıl oluşturabilirim - gördüğüm kılavuzların çoğu standart bir blog düzeyi eklentisiyle ilgili. Bilgiye olan herhangi bir bağlantı faydalı olacaktır, aksi halde sadece orada nasıl yapıldığını görmek için sitideki etiketlerden geçeceğim.

[Güncelleştirme]

Sitewide_tags kullanımlar gibi görünüyor add_site_option, get_site_optionve update_site_option, ve bu fonksiyonların wp_sitemeta kullanın. Ancak, görebildiğim kadarıyla register_setting, add_setting, vb. Desteği yoktur, bu yüzden seçeneklerinizi manuel olarak almak ve ayarlamak zorundasınız.

Yanıtlar:


6

Referans olarak

Ağ veya genel ayarlar oluşturmak için aşağıdakileri yapmanız gerekir.

  • Bir ayar sayfası ekle

    add_submenu_page( 'settings.php'... # cf options.php for blog level`
  • Genel bir seçenek ekleyin

    add_site_option($key,$value)
  • Genel bir seçeneği güncelleyin

    update_site_option($key,$value)
  • Bir site seçeneği edinin

    get_site_option($key)

Genel ayarlar sitemetamasaya kaydedilir (bireysel blog ayarları <blog_id>_optionsmasaya kaydedilir.

  • Ayarlar API’nın blog düzeyinde çalıştığını düşünüyorum - bu nedenle sitemeta değil, seçenekler tablosunu kullanıyor. Yani, ağ düzeyinde seçenek grupları ve benzerlerini kullanamazsınız ( lütfen bunu yanlış anladıysam yorum yapın )

0

Son zamanlarda aynı ihtiyacı karşıladım, ama cevabı da bilmiyordum. Sorunuza açıkça cevap vermemekle birlikte, bir alternatif sadece 'ana' blog'un seçeneklerinin altındaki seçenekler sayfalarını oluşturmak ve çoklu sitenin etkin olup olmadığını kontrol etmektir.

İdeal yol değil, ama (benim gibi), sadece kendi kullanımınız için dahili bir eklenti yaratıyorsanız, uygulanabilir. Ayrıca yönetici sayfaları için tüm genel işlevlerin mevcut olması avantajı vardır - bunlar henüz genel ağ yöneticisi sayfa bağlamında değildir.


0

Kullandığınızda add_submenu_page(), add_menu_page()vb. Ayarlar ve çok sayfalı panonuzda ayar sayfalarının görünmesini bekleyin network_admin_menu;admin_menu

Örnek:

add_action( 'network_admin_menu', 'network_settings_page' );
function network_settings_page(){
    add_submenu_page(

        ...
    )
}

Ayarları kaydetmek için network_admin_edit_{ACTION}eylem kancasını kullanabilirsiniz .

Referans: https://rudrastyh.com/wordpress-multisite/custom-tabs-with-options.html

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.