2016-04-21 97 views
3

我用wp-type工具集來創建一個自定義的帖子類型和發佈到頁面的關係;現在每個頁面編輯屏幕底部都有一個Post Relationships部分。問題是,我只想將這一部分顯示在幾頁上。WordPress的管理區 - 添加類到頁面的主體編輯屏幕

有什麼我可以添加到functions.php(或另一種選擇)來隱藏這個部分從所有頁面編輯屏幕期待這些特定的。

,我想隱藏部分的div id爲#WPCF-關係後和頁面的後數據的ID,我想它是可見的是143和23

+0

您是否嘗試過加入ID的數組在屏幕參數爲add_meta_box功能?像數組(143,43) – neoprez

回答

2

- (更新) -

由於admin_init任何其他鉤前觸發,當用戶訪問 管理方面,我們終於改用admin_head,因爲動作 只是觸發後臺管理頁面的<head>(感謝John

最簡單的方法是使用一個簡單的CSS規則與「admin_head」掛鉤,做到這一點,就像這樣:

1)創建一個名爲hide_some_field.css一個CSS文件,並把它變成你的活躍兒童主題文件夾,使用此代碼:

#wpcf-post-relationship { 
    display:none; 
} 

2)在活動的子主題functions.php文件添加以下代碼:

add_action('admin_head', 'ts_hiding_some_fields'); 
function ts_hiding_some_fields(){ 
    // your 2 pages in this array 
    $arr = array(23, 143); 
    if(get_post_type() == 'page' && !in_array(get_the_ID(), $arr)) 
    { 
     wp_enqueue_style('hide_some_field', get_stylesheet_directory_uri().'/hide_some_field.css'); 
    } 
} 

如果您改爲使用主題,請更改: get_stylesheet_directory_uri()通過get_template_directory_uri()

另一個類似的替代(無需外部CSS文件)是:

add_action('admin_head', 'ts_hiding_some_fields'); 
function ts_hiding_some_fields(){ 
    // your 2 pages in this array 
    $arr = array(23, 143); 
    if(get_post_type() == 'page' && !in_array(get_the_ID(), $arr)) 
    { 
     echo '<style type="text/css"> 
     #wpcf-post-relationship {display: none;} 
     </style>'; 
    } 
} 
+0

真棒!我必須將admin_init更改爲admin_head,否則代碼就會顯示。謝了,兄弟! – John

+0

不錯,它爲你工作!我將用'admin_head'代替這裏的代碼,而不是'admin_init' :) – LoicTheAztec

相關問題