Merhaba @Tom ,
Sorunuzu doğru bir şekilde anlarsam, menüye nasıl bir bağlantı ekleyeceğinizi bilmenize gerek yok (zaten bunu biliyorsunuz gibi görünüyor), ancak bunun yerine, doğru bir şekilde yönlendirmek için bağlantınızı nasıl alacağınızı öğrenmeniz gerekiyor, değil mi?
Yönetici Menüsü Öğesinden Harici URL'ye Yönlendirme
Eğer öyleyse yapmanız gereken şey menü öğesi işlevini kullanmak değil, bunun yerine WordPress'i muhtemelen HTTP başlıkları dışında hiçbir şey vermeyecek kadar erken "kanca" yapmaktır . Çağıran erken kanca /wp-admin/themes.phpgibi görünen after_setup_themeve iyi işe görünür.
Bir "Menü Slug" kullanın, Böylece Kancada Test Edebilirsiniz
Ama biz çağrı değiştirmek için ilk ihtiyaç işe gitmek için add_theme_pagede admin_menukanca / senin create_theme_style_page()fonksiyonu. Beşinci parametreyi (admin seçeneğini uygulamak için çağrılacak işlev) bıraktık çünkü buna ihtiyacımız yok ve dördüncü parametreyi ( "menü slug" ) olarak değiştirdik themes.php?goto=build-styleguide-page.
Dördüncü parametre için neredeyse tam anlamıyla herhangi bir şey seçmiş olsak da themes.php, tutarlılık için diğer görünüm seçenekleriyle aynı sayfaya ( ) yönlendirdiğim için yönlendireceğiz . Ben de sadece isim ile geldim gotoçünkü WordPress onu 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 ona ihtiyacımız yok.
En Eski Kancaya aşağıdakiler için yönlendirin themes.php:after_setup_theme
Kodumuzun son biti olarak, after_setup_themekancalarımızı redirect_from_admin_menu()işlevimize uyguluyoruz . Geçerli sayfanın olup olmadığını themes.phpve URL parametresinin URL'ye gotoiletildiğinden emin olmak için test ettik . Sonra / ifadesi gotokullanmanın değerini ; öyleyse, belirttiğiniz varsayımlara, örneğin Google'a yönlendirir, aksi takdirde yalnızca yönetici kontrol paneline yönlendiririz:switchcase'build-styleguide-page'
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:
Gerekirse ek yönlendirmeler eklemek daha kolay olacak şekilde kanca / işlevinde switch/ caseifadesini kullanmayı seçtim ; daha fazla vaka ifadesi eklemeniz yeterlidir.after_setup_themeredirect_from_admin_menu()goto
wp_redirect()ve wp_safe_redirect()işlevleri aslında sonlandırmak gerekmez; WordPress'in durmasını ve yönlendirmenizi geçersiz kılmamasını sağlamak için bir çıkış deyimi açıkça yayınlamanız gerekir.
Bu yardımcı olur umarım!
'-5've değil-5, başka anahtar geçersiz sayılır (sanırım) .. (ben yanlış değilim, negatif dizeleri olsa çalışır) ..