2013-12-08 48 views
1

我試圖讓Wordpress的管理員頁面在選擇特定類別(如「精選」)時顯示某種形式的輸出。如果選擇了特定類別,在管理員帖子頁面上顯示一些內容

像這樣的東西(原始頁面):

original-image

當我選擇 '特色' 類別(選擇 '特色' 類別),我想要的東西來顯示,這樣的:

when-selected

含義頁面檢查是否檢查特定類別,如果是,則Wordpress生成用戶填寫的選項菜單。

我該如何去做這件事?我在看WordPress的Codex,但到目前爲止,沒有骰子。

+0

你能否詳細說明你想展示什麼? – Trishul

+0

就像一個選項菜單,額外的領域,任何東西! –

回答

0

如果你希望你的功能將在帖子保存後生效(因此它已經標記了ID爲巫婆類別這個帖子屬於),你應該使用in_category()函數來檢測這個帖子是否屬於你的類別想要,如果是的話 - 顯示你的額外的盒子。
但據我所知,你希望它在保存帖子之前也能正常工作,所以你應該使用jQuery - 檢查值爲x的複選框(其中x是你的類別ID)是否被選中,然後顯示你的額外框通過將css display財產從none更改爲block

0

退房Advanced Custom Fields

這是一個wordpress插件,允許您向帖子添加更多字段,並且可以按類別執行此操作。我之前使用過它在帖子上設置背景圖片以便在滑塊中使用。

+1

問題是,我不想依賴ACF的功能爲我的插件:(謝謝你的幫助,雖然。 –

1

您必須在該屏幕中打印一些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中打印腳本的方法。

相關問題