我試圖讓Wordpress的管理員頁面在選擇特定類別(如「精選」)時顯示某種形式的輸出。如果選擇了特定類別,在管理員帖子頁面上顯示一些內容
像這樣的東西(原始頁面):
當我選擇 '特色' 類別(選擇 '特色' 類別),我想要的東西來顯示,這樣的:
含義頁面檢查是否檢查特定類別,如果是,則Wordpress生成用戶填寫的選項菜單。
我該如何去做這件事?我在看WordPress的Codex,但到目前爲止,沒有骰子。
我試圖讓Wordpress的管理員頁面在選擇特定類別(如「精選」)時顯示某種形式的輸出。如果選擇了特定類別,在管理員帖子頁面上顯示一些內容
像這樣的東西(原始頁面):
當我選擇 '特色' 類別(選擇 '特色' 類別),我想要的東西來顯示,這樣的:
含義頁面檢查是否檢查特定類別,如果是,則Wordpress生成用戶填寫的選項菜單。
我該如何去做這件事?我在看WordPress的Codex,但到目前爲止,沒有骰子。
如果你希望你的功能將在帖子保存後生效(因此它已經標記了ID爲巫婆類別這個帖子屬於),你應該使用in_category()
函數來檢測這個帖子是否屬於你的類別想要,如果是的話 - 顯示你的額外的盒子。
但據我所知,你希望它在保存帖子之前也能正常工作,所以你應該使用jQuery - 檢查值爲x的複選框(其中x是你的類別ID)是否被選中,然後顯示你的額外框通過將css display
財產從none
更改爲block
。
這是一個wordpress插件,允許您向帖子添加更多字段,並且可以按類別執行此操作。我之前使用過它在帖子上設置背景圖片以便在滑塊中使用。
問題是,我不想依賴ACF的功能爲我的插件:(謝謝你的幫助,雖然。 –
您必須在該屏幕中打印一些jQuery ,然後才能聽取實時更改並進行顯示/隱藏操作。
以下是來自this WPSE Answer。您必須調整元素ID。此外,jQuery的live
方法是deprecated,也改變這一點。
add_action('admin_head', 'wpse_53486_script_enqueuer');
function wpse_53486_script_enqueuer() {
global $current_screen;
if ('post' == $current_screen->id)
{
echo <<<HTML
<script type="text/javascript">
jQuery(document).ready(function($) {
if ($('#in-category-6').is(':checked')) {
$("form#adv-settings label[for='myplugin_sectionid-hide']").show();
$('#myplugin_sectionid').show();
} else {
$('#myplugin_sectionid').hide();
$("form#adv-settings label[for='myplugin_sectionid-hide']").hide();
}
$('#in-category-6').live('change', function(){
if ($(this).is(':checked')) {
$('#myplugin_sectionid').show();
$("form#adv-settings label[for='myplugin_sectionid-hide']").show();
} else {
$('#myplugin_sectionid').hide();
$("form#adv-settings label[for='myplugin_sectionid-hide']").hide();
}
});
});
</script>
HTML;
}
}
另一種在targeted admin pages中打印腳本的方法。
你能否詳細說明你想展示什麼? – Trishul
就像一個選項菜單,額外的領域,任何東西! –