Skip Navigation

[Resolved] 關於後台隱藏 Toolset Post Type 中的 Template Layout Metabox

This support ticket is created 5 years ago. There's a good chance that you are reading advice that it now obsolete.

This is the technical support forum for Toolset - a suite of plugins for developing WordPress sites without writing PHP.

Everyone can read this forum, but only Toolset clients can post in it. Toolset support works 6 days per week, 19 hours per day.

No supporters are available to work today on Toolset forum. Feel free to create tickets and we will handle it as soon as we are online. Thank you for your understanding.

Sun Mon Tue Wed Thu Fri Sat
- 9:00 – 13:00 9:00 – 13:00 9:00 – 13:00 9:00 – 13:00 9:00 – 13:00 -
- 14:00 – 18:00 14:00 – 18:00 14:00 – 18:00 14:00 – 18:00 14:00 – 18:00 -

Supporter timezone: Asia/Hong_Kong (GMT+08:00)

This topic contains 3 replies, has 2 voices.

Last updated by Luo Yang 5 years ago.

Assisted by: Luo Yang.

Author
Posts
#1392003
02.jpg
04.jpg
03.jpg
05.jpg
01.jpg

問題一
需求:隱藏 Toolset Post Type 中的 Template Layout Metabox。
環境設定:新增一個 Post Type 為 Product,新增每一筆資料都可成功套用預設的 Template Layout,請見附圖「01」。
操作方式:加入以下文字內容到檔案 functions.php 中。

add_action( 'admin_head', 'wpv_custom_admin_head', 20);
function wpv_custom_admin_head() {
remove_meta_box( 'wpddl_template', 'product', 'side' );
remove_meta_box( 'views_template', 'product', 'side' );
}

結果:Template Layout Metabox 被隱藏,但當修改任一 Product 內容並儲存時,Layouts 無法套用預設的版型,請見附圖「02」。
刪除檔案 functions.php 中的該段文字內容後,Template Layout 出現,但卻顯示未套用任何 Layout,請見附圖「03」,可透過手動方式指定回 Product Layout,卻不能直接自動套用。
參考來源:https://toolset.com/forums/topic/hide-the-template-layout-metabox/
進階詢問:「wpddl_template」與「views_template」的差異。

問題二
需求:隱藏 Toolset Post Type 中,編輯區塊【Fields and Views】、【Content Layout Editor】的兩個按鈕
環境設定:新增一個 Post Type 為 Product。
操作方式:

加入以下文字內容到檔案 functions.php 中

add_action( 'admin_init', 'my_admin_init' );
function my_admin_init() {
if(!current_user_can('manage_links')) {
wp_enqueue_style( 'myStylesheet', get_stylesheet_directory_uri() . '/wpadmin.css' );
}
}

加入以下文字內容到檔案 wpadmin.css 中,並將檔案放置在 theme-child 的資料夾中。

div.wp-media-buttons a.js-layout-private-add-new-top {
display:none !important;
}
.post-php .wp-core-ui .js-wpv-fields-and-views-in-toolbar {
display: none;
}

結果:兩個按鈕皆被隱藏,請問做法是否正確?
請見附圖「04」、「05」
參考來源:https://toolset.com/forums/topic/hide-template-layout-selection-for-non-admin/

#1392123

你好,

Toolset默認是不具備你説的兩個功能的。

1) 如果你是用上面的PHP代碼移除Template Layout Metabox,就會造成你説的結果:
Template Layout Metabox 被隱藏,但當修改任一 Product 內容並儲存時,Layouts 無法套用預設的版型

但是你可以使用CSS隱藏該metabox,參考下面的CSS代碼。

2) 你需要根據新版的Views外挂修改CSS代碼,例如:

.wp-media-buttons js-layout-private-add-new-top {
	/* 隱藏Layout按鈕 */
	display:none !important; 
}
.wp-media-buttons .js-wpv-fields-and-views-in-toolbar {
	/* 隱藏Views按鈕 */
	display: none;
}
#wpddl_template{
	/* 隱藏Template Layout Metabox */
	display: none;
}
#1395051

嗨 早安,所請教
1.所以是兩段的Function內容都不能這樣使用,皆會影響嗎
2.如果都會用影響,那這段css要如何運用搭配呢?

#1395053

第一段PHP代碼會影響使用,第二段PHP代碼是需要的。簡單來説

简单来说,你可以保留这段PHP代码

add_action( 'admin_init', 'my_admin_init' );
function my_admin_init() {
if(!current_user_can('manage_links')) {
wp_enqueue_style( 'myStylesheet', get_stylesheet_directory_uri() . '/wpadmin.css' );
}
}

然後按照我上面提到的修改CSS文件:
https://toolset.com/forums/topic/%e9%97%9c%e6%96%bc%e5%be%8c%e5%8f%b0%e9%9a%b1%e8%97%8f-toolset-post-type-%e4%b8%ad%e7%9a%84-template-layout-metabox/#post-1392123