Beim Editieren einer Seite sieht der Benutzer statt des erwarteten Inhalts Folgendes:
[child-pages depth="1" sort_column="post_title"]
Wie kann der Benutzer diese Seite finden, um sie zu bearbeiten?
Dies ist ein Shortcode, den Sie im Post / Page-Inhalt sehen. Es werden höchstwahrscheinlich alle untergeordneten Seiten (bis zur Tiefe 1) der aktuellen Seite angezeigt. Shortcodes sind sehr verbreitet, aber ihre Ausgabe kann nicht im Post- / Seiteneditor von WordPress angezeigt werden, sondern nur im Frontend, wo sie über die function do_shortcode()
generiert wird.
So können Sie versuchen, Folgendes zu tun:
/wp-admin/edit.php?post_type=page
) im Backend. [child-pages]
enthält. Hier sind die untergeordneten Seiten der Tiefe 1 in der Tabelle ” Alle Seiten” :
Wir können das folgende Plug-in verwenden, um ein eigenes benutzerdefiniertes Metabox zu erstellen, das eine Liste aller aktuellen untergeordneten Seiten anzeigt.
Demo-Plugin:
< ?php /** * Plugin Name: Child Pages Meta Box * Description: Child pages meta box for hierarchial post types * Author: Birgir Erlendsson (birgire) * Plugin URI: http://wordpress.stackexchange.com/a/158636/26350 * Version: 0.0.2 */ function wpse_current_child_pages_meta_box() { $post_types = get_post_types(); foreach ( $post_types as $post_type ) { if( is_post_type_hierarchical( $post_type ) ) { add_meta_box( 'wpse_child_pages', __( 'Current child pages' ), 'wpse_list_current_child_pages', $post_type, 'side', 'low' ); } } } add_action( 'add_meta_boxes', 'wpse_current_child_pages_meta_box' ); function wpse_list_current_child_pages( $post ) { $args = array( 'child_of' => $post->ID, 'echo' => 0, 'title_li' => '', 'post_type' => $post->post_type, 'walker' => new WPSE_EditLinks ); $style = ''; $list = wp_list_pages( $args ); if( ! $list ) $list = sprintf( '%s ', __( 'No child pages found!' ) ); printf( '%s%s', $style, $list ); } class WPSE_EditLinks extends Walker_Page { function end_el( &$output, $page, $depth = 0, $args = array() ) { $edit_url = admin_url( 'post.php?action=edit&post=' . $page->ID ); $edit_link = " "; $output = str_replace( ">". $edit_link. "
wo wir wp_list_pages()
, um all die harte Arbeit zu erledigen. Wir müssen jedoch nur die Bearbeitungsverknüpfungen hinzufügen. Aus diesem Grund erstellen wir einen benutzerdefinierten Seitenwanderer.
Dieses Plugin aktiviert automatisch das Meta-Feld auf allen Post-Edit-Bildschirmen für jeden hierarchischen Post-Typ.
Wo füge ich diesen Code hinzu?
Erstellen Sie dieses Unterverzeichnis:
/wp-content/plugins/wpse-current-child-pages-metabox/
Dann speichern Sie das Code-Snippet in der Datei:
/wp-content/plugins/wpse-current-child-pages-metabox/wpse-current-child-pages-metabox.php
und aktiviere das Plugin vom Backend:
/wp-admin/plugins.php
Screenshots:
Hier ist ein Screenshot, wie es funktionieren würde:
und ohne untergeordnete Seiten:
Jetzt können Sie einfach auf den Link zum Bearbeiten der entsprechenden untergeordneten Seite klicken, die Sie ändern möchten.
Viel einfacher 😉
Gist / GitHub:
Das Plugin ist hier auf Gist / GitHub verfügbar .