Wordpress farklı yönetici sayfasına yönlendirmek için nasıl?

7 Cevap php

Ben bir Wordpress eklentisi yazıyorum.

Ben diğer ADMIN sayfasına (vb POST verileri, DB kayıtları oluşturduktan sonra ..) bir yönlendirme yapmak istiyorum.

Ne header ("Location: ...) ne de wp_redirect () çalışmıyor - i almak

Uyarı: başlık bilgileri değiştirilemiyor - zaten tarafından gönderilen başlıklar

hangi belirgin bir neden geliyor.

Nasıl düzgün bir Wordpress bir yönlendirme yapabilirim?

7 Cevap

Form eylem, eylem URL'ye '= true noheader' ekleyin. Bu yönlendirme önce çıkılır olmaktan yönetici alanı için başlıklarını önleyecektir. Örneğin:

<form name="post" action="<?php echo admin_url('admin.php?page=your-admin-page&noheader=true'); ?>" method="post" id="post">

Ben bunu yanlış şekilde yaptığını düşünüyorum.

My code was inside a add_menu_page() inside add_action('admin_menu', ...) call

Muhtemelen (sayfa başlığı oluşturuldu ve görüntülendikten sonra) istek sırasında sonradan denir.

Benim eklenti kolları dışında benim kod hareketli, içine ana kapsamı çalıştı - bazı temizleme ve düzeltmeleri gerekiyor, ama işleri yönlendirmek.

Neyse, cevaplar için teşekkürler.

Eğer hala isteğinizi işleme sonra, ardından * işlevleri WP add_page kullanırken başka bir yönetici sayfası için eklenti yönetim sayfasından yönlendirmek istiyorsanız, sadece bu gibi bir şey yankı:

<script type="text/javascript">
window.location = '/whatever_page.php';
</script>

Bu sadece "/ whatever_page.php" dolayısıyla zaten Chris Ballance olarak WP tarafından gönderilen başlıkları ile hiçbir sorun sağlanması zaten dedi bir javascript tabanlı yönlendirme vermektedir.

"/ Wp-admin/admin.php? Page = whatever_page" gibi bir şey Değiştir "/ whatever_page.php"

Add_submenu_page (veya ilgili fonksiyonu) ile ilave bir bağlantı için, "yük-$ hook_suffix" bir eylem eklemek ve orada yönlendirme yapmak için döndü $ hook_suffix kullanın. Bu çıkış başladı önce sayfa yük kanca nasıl.

Ben sadece herhangi bir çıkış gönderildi önce wp_redirect () geliyor emin olmak gerekir herhalde.

Sen yönlendirme gerçekleşmeden önce hiçbir şey http çıkış gönderildiğinden emin olmak gerekir.

Siz "window.location ('newLocation');" ayarlayabilirsiniz ve hala çıktı tarayıcıya gönderildikten sonra size yönlendirmek izin verir.

Template_redirect içine yerleştirin.

add_action('template_redirect', 'myplugin_template_redirect');

function myplugin_template_redirect() {  
   wp_redirect('http://www.example.com/', 301);
}