問題描述
這是一個有趣的問題。
我最近注意到,如果你使用代碼
remove_meta_box('slugdiv', 'post', 'normal');
當您點擊頁面標題下的網址時,您實際上無法修改該插件。
為了澄清,當您使用 remove_meta_box 作為 slugdiv 時,metabox 和屏幕選項被刪除,但您仍然可以點擊該標題下的 URL 來編輯它… 但是,當你去更新/發佈帖子你所做的任何修改都不需要。
我的目標是從帖子編輯屏幕中刪除相同的代謝變量,並從屏幕選項頁面中刪除它。但是,我想確保在編輯這個仍然可以工作的帖子標題下的。條時。
任何人都可以提供解決這個問題的辦法嗎?提前致謝。
最佳解決方案
在標題下允許 slug 版本的盒子實際上綁在了 slug metabox 上。它需要它工作。所以,刪除 metabox 會打破它。
我認為唯一的解決方案是使用 javascript 或 css 來隱藏它。這樣的事情將會起作用:
function hide_slug_box() {
global $post;
global $pagenow;
if (is_admin() && $pagenow=='post-new.php' OR $pagenow=='post.php') {
echo "<script type='text/javascript'>
jQuery(document).ready(function($) {
jQuery('#edit-slug-box').hide();
});
</script>
";
}
}
add_action( 'admin_head', 'hide_slug_box' );
次佳解決方案
我最後只是添加以下 CSS 到一個 css 文件我正在調用我的 functions.php 文件的管理區域:
[for="slugdiv-hide"] {
display: none;
}
#slugdiv {
display: none;
}
這樣就刪除了屏幕選項和 metabox,同時仍允許我編輯標題下的 url 。
UPDATED
根據 FXFUTURE 提供的答案,我通過擴展它來修改他的代碼,幷包括屏幕選項和 slug metabox 的 css 值,同時確保代碼只包含在 post-new.php 和 post.php 頁面中。
// HIDE THE SLUG METABOX AND SLUG SCREEN OPTIONS
function hide_slug_options() {
global $post;
global $pagenow;
$hide_slugs = "<style type="text/css">#slugdiv, #edit-slug-box, [for="slugdiv-hide"] { display: none; }</style>n";
if (is_admin() && $pagenow=='post-new.php' OR $pagenow=='post.php') print($hide_slugs);
}
add_action( 'admin_head', 'hide_slug_options' );
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。