WordPress yönetici menüsüne rasgele köprü eklemenin bir yolu var mı (yönetici kontrol panelinde oturum açtığınızda soldaki menüden bahsediyorum)? Örneğin, biri Google’a bir bağlantı ekleyebilir mi?
Özel durumum üzerinde, üzerinde çalışmakta olduğum bir Wordpress teması için bir stil kılavuzu sayfası eklemek istiyorum, böylece kullanıcıya farklı HTML öğelerinin tema ile nasıl stillendirildiğini ve çeşitli şeylerin nasıl güzel bir şekilde stillendirileceğini gösterebiliyorum.
Şimdiye kadar sahip olduğum kod ( not: eksik ): In functions.php Görünüm bölümünde yeni bir menü öğesi ekledim:
add_action('admin_menu', 'create_theme_style_page');

function create_theme_style_page() {
  add_theme_page('Theme Styleguide', 'Theme Styleguide', 'administrator', basename(__FILE__),'build_styleguide_page');
}

function build_styleguide_page() {
 echo "Not sure what goes here to redirect admin to a arbitrary url?";
}
build_styleguide_page()'da header() ile yönlendirmeye çalışmak hata veriyor ( Başlık bilgisi değiştirilemiyor ).
menusthemesadminwpse-plugin
20
30 Ağu 2010 Tom
Merhaba @Tom,
Sorunuzu doğru anladıysam, menüye nasıl bir bağlantı ekleyeceğinizi bilmeniz gerekmez (zaten bunu biliyorsunuzdur) ancak bunun yerine bağlantınızın doğru yönlendirilip yönlendirilmeyeceğini öğrenmeniz gerekir, değil mi?
Yönetici Menüsü Öğesinden Harici Bir URL’ye Yeniden Yönlendirme
Eğer öyleyse yapmanız gereken şey, menü öğesi işlevini kullanmamak, bunun yerine "hook" WordPress'e, muhtemelen HTTP başlıkları dışında hiçbir şey vermeyecek kadar erken basmaktır. /wp-admin/themes.php çağrılırken en eski kanca after_setup_theme gibi görünüyor ve iyi çalışıyor gibi görünüyor.
A "Menu Slug" kullanın, böylece bir Kancada Test edebilirsiniz
Ancak işe yaraması için önce çağrınızı add_theme_page hook/create_theme_style_page() işlevinizde admin_menu olarak değiştirmemiz gerekir. Beşinci parametreyi düşürdük (admin seçeneğini uygulamak için kullanılacak fonksiyon) çünkü buna ihtiyacımız yok ve dördüncü parametreyi ( "menu slug" ) themes.php?goto=build-styleguide-page olarak değiştirdik.
Dördüncü parametre için neredeyse tam anlamıyla bir şey seçmiş olsak da, yönlendirme yapacağımıza göre, tutarlılık için diğer görünüm seçenekleriyle aynı sayfaya (themes.php) yönlendirdim. Ayrıca, keyfi olarak goto adını da kullandım çünkü WordPress bunu kullanmıyor ve bunun için mantıklı görünüyor.
add_action('admin_menu', 'create_theme_style_page');
function create_theme_style_page() {
  add_theme_page(
    'Theme Styleguide',
    'Theme Styleguide',
    'administrator',
    'themes.php?goto=build-styleguide-page'
  );
}
BTW, build_styleguide_page() işlevinizden kurtulduk, çünkü bu çözüm için buna ihtiyacımız yok.
themes.php için En Eski Kanca'da yönlendir:after_setup_theme
Son kodumuz olarak after_setup_theme kancamızı redirect_from_admin_menu() işlevimizde kullanırız. Geçerli sayfanın themes.php olup olmadığını ve URL'de goto URL parametresinin iletildiğinden emin olmak için test yaptık. Ardından 'build-styleguide-page' değerine sahip olup olmadığını görmek için goto/switch deyimini kullanarak case değerini test eder; öyleyse, belirttiğiniz varsayımlara yönlendirir, ör. Google, aksi takdirde yönetici paneline geri yönlendiririz:
add_action('after_setup_theme', 'redirect_from_admin_menu');
function redirect_from_admin_menu($value) {
  global $pagenow;
  if ($pagenow=='themes.php' && !empty($_GET['goto'])) {
    switch ($_GET['goto']) {
      case 'build-styleguide-page':
        wp_redirect("http://www.google.com");
        break;
      default:
        wp_safe_redirect('/wp-admin/');
        break;
    }
    exit;
  }
}
Notlar:
after_setup_theme hook/redirect_from_admin_menu() işlevinde switch/case deyimini kullanmayı seçtim, böylece gerekirse ek goto yönlendirmeleri eklemek daha kolay olurdu; sadece daha fazla vaka ifadesi ekleyin.
wp_redirect() ve wp_safe_redirect() işlevleri aslında sonlanmaz; WordPress'in durmasını ve yönlendirmenizi geçersiz kılmamasını sağlamak için bir çıkış deyimi yayınlamanız gerekir.
Bu yardımcı olur umarım!
13
30 Ağu 2010 MikeSchinkel
Öğenizi doğrudan $submenu dizisine ekleyerek menüye eklerseniz, yönlendirmeyi yapmanız ve menü bağlantısı olarak tüm site dışı bir URL kullanmanız gerekmez (bunu kendim yaparım).
add_action( 'admin_menu' , 'admin_menu_new_items' );
function admin_menu_new_items() {
    global $submenu;
    $submenu['index.php'][500] = array( 'Menu item name', 'manage_options' , 'http://example.com' ); 
}  
index.php, ana menünün tuşunu/bağlantısını gösterir, bu örnekte temel olarak Dashboard menu öğesine bir öğe ekliyorum.
Elbette, add_{type}_page işlevlerini kullanmak kadar güzel değil, ancak WordPress'in yönetici menü bağlantılarında site dışı URL'leri önlediği gerçeği ile ilgili.
Çeşitli sanal ana bilgisayarlarımı menüye eklemek için benzer bir şey kullanıyorum, böylece doğrudan yönetici menüsünden diğer yüklemelere geçebilirim (hepsi bir komut dosyasıyla yapılır, ancak temelde yukarıdaki kodun yüceltilmiş bir sürümünü kullanır).
NOT: Kodu kullanmaya karar verirseniz, kullanımda olan bir anahtar atamamasına dikkat edin (örnek koddaki 500 dizi anahtarı).
İPUCU: Menü tuşlarında negatif değerler kullanabilirsiniz, böylece menü öğelerini yerel WordPress öğelerinin herhangi birinden önce oturmaya zorlayabilirsiniz.
21
9 Kas 2010 t31os
Bununla aynı şeyi başardım:
function add_custom_menu_item(){
    add_menu_page( 'Menu Item Title', 'Page Title', 'manage_options', 'page_slug', 'function', 'dashicons-icon', 1 );
}
add_action( 'admin_menu', 'add_custom_menu_item' );

function custom_menu_item_redirect() {

    $menu_redirect = isset($_GET['page']) ? $_GET['page'] : false;

    if($menu_redirect == 'page_slug' ) {
        wp_safe_redirect( home_url('/my-page') );
        exit();
    }

}
add_action( 'admin_init', 'custom_menu_item_redirect', 1 );
Burada yaptığınız şey, menü maddesi ekleyip sümüklüböceği tanımlamanız, daha sonra 'admin_init' üzerinde sümüklü böcek olup olmadığını kontrol edip istediğiniz yere yönlendirmek.
3
21 Oca 2015 Bobz
magento2'daki temayı nasıl değiştirebilirim?
Nav üzerinde ul sınıfı nasıl eklenir
Özel Bir Yazı Tipi Menüsünü Yazı Menüsünün üstüne yerleştirmek menu_position?
Wp_nav_menu dosyasındaki çapaya özel sınıflar ekleyin
Dinamik şablon sunumu, geçerli temanın add_filter komutunu kullanarak theme_root öğesini değiştirin
Satır sonları ile menü öğesi açıklamasını göster
Özel bir bölüm bölüm (add_settings_section) ekleyin (add_submenu_page)
WordPress şablonunda ana menü temasının yeri nerede tanımlanır?
admin menüsü öğesinin ondalık dizi dizin numarasıyla
Temalar listesi üzerinden nasıl alınır REST api?
Kaldır/Devre Dışı Bırak "Bu menüye otomatik olarak yeni üst düzey sayfa ekle"
Bu hatayı nasıl düzeltirim: Uyarı: foreach () için verilen geçersiz değişken mi?
Tüm kullanıcılar tarafından görüntülenebilen Gösterge Tablosuna menü nasıl eklenir?
Kendi yönetici butonumu ve tema ayarları sayfamı nasıl oluşturabilirim?
Özel menüler için temama nasıl destek eklerim?
Yayınlar ve Sayfalar yönetici üzerinde gösterilmiyor ancak temada gösteriliyor
Özel yönetici menüsü aracılığıyla bir temaya sosyal simgeler ekleme
Eğer 'link_before' "checkbox" ise "nav-menu-template.php" 'ı <input> eklemek için özelleştirmenin en iyi yolu
Göster WP 3.0 HTML'de Özel Menü Otomatik Gezinme ile Seçim Yapılsın mı?
Sayfa tablosuna sütun ekle
Content dated before 2011-04-08 (UTC) is licensed under CC BY-SA 2.5. Content dated from 2011-04-08 up to but not including 2018-05-02 (UTC) is licensed under CC BY-SA 3.0. Content dated on or after 2018-05-02 (UTC) is licensed under CC BY-SA 4.0. | Privacy