Fügen Sie dem ausgewählten Beitrag im Meta-Feld URL hinzu

Wie kann ich diesen Code ändern?

$posts = get_posts(array('post_type'=> 'lesson', 'post_status'=> 'publish', 'suppress_filters' => false, 'posts_per_page'=>-1)); //here you add the HTML of the dropdown you add something like echo '

Select the lesson: '; foreach ($posts as $post) { echo 'ID, '"'; if ($my_dropdown == $post->ID){echo ' selected="selected"';} echo '>'.$post->post_title.''; } echo ''; }

den Titel des ausgewählten Beitrags in der Seitenvorlage mit der URL des SELECTED-Posts (der Titel sollte ein Link sein) zu wiederholen?

Danke im Voraus

Solutions Collecting From Web of "Fügen Sie dem ausgewählten Beitrag im Meta-Feld URL hinzu"

Super kurze Version:

Ersetzen Sie $post->post_title durch get_permalink($post->ID) .

Kurze Version:

Fügen Sie einen Filter zu Ihrem aktuellen Code hinzu, in dem Sie post_title .

 $posts = get_posts(array('post_type'=> 'lesson', 'post_status'=> 'publish', 'suppress_filters' => false, 'posts_per_page'=>-1)); //here you add the HTML of the dropdown you add something like echo '

Select the lesson: ';

Irgendwo in deiner functions.php oder Plugin-Datei:

 function filter_list_cpt($title, $cpt) { return sprintf(__('%1$s [%2$s]', 'my_textdomain'), $title, get_permalink($cpt->ID)); } add_filter('list_cpt', 'filter_list_cpt', 10, 2); 

Aber warum hier aufhören? Lassen Sie uns den bereitgestellten Code verbessern und in eine WordPress-Perspektive einfügen.

Besserer Ansatz

WordPress hat seine eigenen Hilfsfunktionen, um eine Auswahl von zB Seiten zurückzugeben. Anstatt also nur Code zu schreiben, können wir versuchen, diese function nach unseren Bedürfnissen zu kopieren und neu zu schreiben. Ich nenne es: my_dropdown_post_type

 function my_dropdown_post_type( $post_type = 'lesson', $args = '' ) { $defaults = array( 'depth' => 0, 'child_of' => 0, 'selected' => 0, 'echo' => 1, 'name' => "{$post_type}_id", 'id' => '', 'class' => '', 'show_option_none' => '', 'show_option_no_change' => '', 'option_none_value' => '', 'value_field' => 'ID', 'post_type' => $post_type ); $r = wp_parse_args( $args, $defaults ); $cpt = get_posts( $r ); $output = ''; if ( ! empty( $cpt ) ) { $class = ''; if ( ! empty( $r['class'] ) ) { $class = " class='" . esc_attr( $r['class'] ) . "'"; } $output = "\n"; } $html = apply_filters( 'wp_dropdown_pages', $output, $r, $cpt ); if ( $r['echo'] ) { echo $html; } return $html; } 

Dann wenden wir unseren list_pages Filter an

 function filter_list_cpt($title, $cpt) { if ($cpt->post_type == 'lesson') return sprintf(__('%1$s [%2$s]', 'my_textdomain'), $title, get_permalink($cpt->ID)); return $title; } add_filter('list_pages', 'filter_list_cpt', 10, 2); 

Am Ende können wir unsere my_dropdown_post_type function wie jede andere grundlegende WP-function aufrufen:

 my_dropdown_post_type( 'lesson', array( 'selected' => $my_dropdown, 'post_status'=> 'publish', 'suppress_filters' => false, 'posts_per_page'=>-1 ) );