問題描述

這是一個有趣的問題。

我最近注意到,如果你使用程式碼

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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。