Frage

Hier ist eine interessante Frage.

Ich habe kürzlich bemerkt, dass wenn Sie den Code verwenden

remove_meta_box('slugdiv', 'post', 'normal'); 

Sie können den Schnecken tatsächlich nicht ändern, wenn Sie unter dem Seitentitel auf die URL -Slug klicken.

Um zu verdeutlichen, werden die Metabox- und Bildschirmoptionen, um die REME_META_BOX für den Slugdiv zu verwenden Was auch immer Sie vorgenommen haben, nimmt nicht vor.

Mein Ziel ist es, dieselbe Metabox aus dem Bildschirm "Post Bearbeiten" zu entfernen und auf der Seite "Bildschirmoptionen" zu entfernen. Ich möchte jedoch sicherstellen, dass dies beim Bearbeiten des Slugs unter dem Post -Titel noch funktioniert.

Kann jemand eine Lösung für dieses Problem bereitstellen? Danke im Voraus.

War es hilfreich?

Lösung 2

Am Ende habe ich nur das folgende CSS zu einer CSS -Datei hinzugefügt, die ich in meiner Datei functions.php für den Administratorbereich aufgerufen habe:

[for="slugdiv-hide"] { 
    display: none; 
    }

#slugdiv { 
    display: none; 
    }

Dadurch wurde sowohl die Bildschirmoptionen als auch die Metabox entfernt, während ich dennoch die URL unter dem Titel bearbeiten konnte.

AKTUALISIERT

Basierend auf der von FXFuture bereitgestellten Antwort habe ich seinen Code geändert, indem er ihn erweitert und die CSS-Werte für Bildschirmoptionen und die Slug-Metabox einbezogen und sicherstellte, dass der Code nur auf der Seite post-new.php und post.php enthalten ist.

// 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'  );

Andere Tipps

Die Box, die die Slug -Edition unter dem Post -Titel ermöglicht, ist tatsächlich an den Slug -Metabox gebunden. Es braucht es, um zu arbeiten. Das Entfernen des Metaboxen wird es also brechen.

Ich denke, die einzige Lösung wäre, JavaScript oder CSS zu verwenden, um sie zu verbergen. So etwas wird funktionieren:

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'  );

Sie sollten remove_meta_box im add_meta_boxes -Hook anrufen, um ihn zum Laufen zu bringen. Es wurde auf 4.0 getestet.

add_action( 'add_meta_boxes', 'customize_admin_backend_cpt',0 );

function customize_admin_backend_cpt () {
    remove_meta_box( 'slugdiv', 'your_cpt_goes_here', 'normal' );
}

Anstatt Ihre CSS -Datei zu bearbeiten, können Sie diese in Ihren Funktionen verwenden.php:

function hide_all_slugs() {
global $post;
$hide_slugs = "<style type=\"text/css\"> #slugdiv, #edit-slug-box { display: none; }</style>";
print($hide_slugs);
}
add_action( 'admin_head', 'hide_all_slugs'  );
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top