Erhalten Sie Titel nach Alphabet

Ich versuche, diese function aufzurufen, um eine Liste von Posts alphabetisch zu erhalten. Aber aus irgendeinem Grund bekomme ich immer einen Fehler. Rufen Sie eine Memberfunktion get_col () für ein Nicht-Objekt auf.

Was mache ich falsch?

{function get_post_by_alphabet($the_char){ $first_char = $the_char; $postids=$wpdb->get_col($wpdb->prepare(" SELECT ID FROM $wpdb->posts WHERE SUBSTR($wpdb->posts.post_title,1,1) = %s ORDER BY $wpdb->posts.post_title",$first_char)); if ($postids) { $args=array( 'post__in' => $postids, 'post_status' => 'publish', 'posts_per_page' => -1, 'caller_get_posts'=> 1 ); $my_query = null; $my_query = new WP_Query($args); if( $my_query->have_posts() ) { echo 'List of Posts Titles beginning with the letter '. $first_char; while ($my_query->have_posts()) : $my_query->the_post(); echo '
  • <'.the_title().'
  • '; endwhile; } wp_reset_query(); // Restore global post data stomped by the_post(). } } get_post_by_alphabet('H'); }

    Solutions Collecting From Web of "Erhalten Sie Titel nach Alphabet"

    Du hast zwei Probleme. Zuerst muss global $wpdb; . Dann verwenden Sie the_title() und the_permalink() beide automatisch einen Wert the_permalink() . Also müssen Sie sie zu get_the_title() und get_permalink() wechseln.

     function get_post_by_alphabet($the_char){ global $wpdb; $first_char = $the_char; $postids=$wpdb->get_col($wpdb->prepare(" SELECT ID FROM $wpdb->posts WHERE SUBSTR($wpdb->posts.post_title,1,1) = %s ORDER BY $wpdb->posts.post_title",$first_char)); if ($postids) { $args=array( 'post__in' => $postids, 'post_status' => 'publish', 'posts_per_page' => -1, 'caller_get_posts'=> 1 ); $my_query = null; $my_query = new WP_Query($args); if( $my_query->have_posts() ) { echo 'List of Posts Titles beginning with the letter '. $first_char; while ($my_query->have_posts()) : $my_query->the_post(); echo '
  • < '.get_the_title().'
  • '; endwhile; } wp_reset_query(); // Restore global post data stomped by the_post(). } } get_post_by_alphabet('H');