webentwicklung-frage-antwort-db.com.de

So deaktivieren Sie das Dropdown-Menü "Seitenattribute" in wp-admin

Wie unter WordPress-Administratorbildschirm sehr langsam/Zeitüberschreitung beim Bearbeiten oder Hinzufügen einer neuen Seite/Benutzerdefinierter Beitrag

Ich habe ein ähnliches Problem auf einer WP Website mit 7.784 Seiten. Bearbeitungsbildschirme werden langsam geladen, da alle 7.000 Seiten im Quellcode für das Dropdown-Menü Seitenattribute gerendert werden. Neben der Bearbeitung des Kerns muss es einen besseren Weg geben, um damit umzugehen. Es scheint ein Fehler zu sein, alle Seiten auf dem Bearbeitungsbildschirm zu rendern.

Feedback von anderen mit hohem Volumen/Verkehr WP Websites sehr geschätzt!

1
Jason Deadrich

Durch das Entfernen der Unterstützung für Seitenattribute wird verhindert, dass dieses Feld angezeigt wird ...

function remove_page_attribute_support() {
    remove_post_type_support('page','page-attributes');
}
add_action( 'init', 'remove_page_attribute_support' );

... aber ich weiß nicht, ob Sie Unterstützung für Attribute benötigen oder nicht. Wenn Sie das nicht tun, ist das die Lösung.

Wenn Sie dies tun, müssen Sie die Box gemäß der Antwort von @ KrzysiekDrozdz entfernen, aber um diese Attribute verwenden zu können, müssen Sie diese Box neu erstellen, das Original ist hier , so, dass es funktioniert Sie.

3
s_ha_dum

Verwenden Sie einfach remove_meta_box Funktion:

if (is_admin()) :
function my_remove_meta_boxes() {
    remove_meta_box('pageparentdiv', 'page', 'side');
}
add_action( 'admin_menu', 'my_remove_meta_boxes' );
endif;

Wenn Sie die Hierarchie dieser Seiten festlegen müssen (post_parent für Seiten festlegen), können Sie dies dennoch tun. Fügen Sie einfach Ihre benutzerdefinierte Meta-Box hinzu und platzieren Sie dort eine Auswahlbox mit einer Liste von Seiten.

Sie müssen sicher sein, dass Ihre Anfrage (um diese Seiten auszuwählen) effizienter ist als die Originalanfrage. Sie können Seiten ohne Hierarchie auflisten und nur title und page_id auswählen (die ursprüngliche Abfrage ruft alle Seitendaten aus der DB ab, und es können viele Daten sein, wenn es viele Seiten gibt) oder so ähnlich.

2

Eine andere Möglichkeit besteht darin, die Dropdown-Argumente vor dem Aufruf von wp_dropdown_pages zu filtern. Diese Funktion hat einen Haken, aber es passiertnachdemdie Abfrage gemacht wurde.

Es gibt zwei Stellen, an denen gefiltert werden kann: im Schnellbearbeitungsmodus und im Seiten-Meta-Feld. Für Options Reading oder Theme Customizer ist jedoch keine verfügbar.

enter image description here

Das Folgende sind die Standardargumente und ein Beispiel für einen Filter zum Einschränken der Seiten nach Autor (depth, child_of und exlcude scheinen ebenfalls gute Kandidaten zu sein).

/*
$defaults = array(
    'depth' => 0, 
    'show_date' => '',
    'date_format' => get_option('date_format'),
    'child_of' => 0, 
    'exclude' => '',
    'title_li' => __('Pages'), 
    'echo' => 1,
    'authors' => '', 
    'sort_column' => 'menu_order, post_title',
    'link_before' => '', 
    'link_after' => '', 
    'walker' => '',
);
*/

add_filter( 'quick_edit_dropdown_pages_args', 'limit_parents_wpse_106164' );
add_filter( 'page_attributes_dropdown_pages_args', 'limit_parents_wpse_106164' );

function limit_parents_wpse_106164( $args )
{
    $args['authors'] = 'author_name';
    return $args;
}
2
brasofilo