it-swarm.com.de

Ändern Sie die Seitenleiste des letzten Beitrags, um die Beitrags-Thumbnails ohne Plugins anzuzeigen

Hallo, ich benutze Undersocres, um ein Thema zu erstellen. Ich muss dem Widget für den letzten Beitrag Miniaturansichten für Posts hinzufügen, stecke aber fest. Ich probiere den folgenden Code aus, erhalte jedoch ein Widget für kürzlich erstellte Posts, eines ohne Miniaturbilder und das andere mit Miniaturbildern.

Ich verstehe, dass dies daran liegt, dass ich nicht das ursprüngliche Widget für kürzlich veröffentlichte Posts ändere, sondern ein anderes hinzufüge. Meine Frage lautet: Wie kann ich den letzten WordPress-Kernbeitrag so ändern, dass Post-Thumbnails vor meinem Titel angezeigt werden? Dies ist, was ich versuche, was zu einem duplizierten Widget für kürzlich veröffentlichte Beiträge führt.

<div id="secondary" class="widget-area" role="complementary">
        <?php dynamic_sidebar( 'sidebar-1' ); ?>

        <?php $recent_posts = wp_get_recent_posts();
        foreach( $recent_posts as $recent ){
            if($recent['post_status']=="publish"){
                if ( has_post_thumbnail($recent["ID"])) {
                        echo '<li><a href="' . get_permalink($recent["ID"]) . '" title="'.esc_attr($recent["post_title"]).'" >' .   get_the_post_thumbnail($recent["ID"], 'thumbnail'). $recent["post_title"].'</a></li> ';
                }else{
                        echo '<li><a href="' . get_permalink($recent["ID"]) . '" title="'.esc_attr($recent["post_title"]).'" >' .   $recent["post_title"].'</a></li> ';
                }
             }
        }
        ?>
</div><!-- #secondary -->
3
Pablo Levin

HIER IS DIE LÖSUNG

/**
 * Extend Recent Posts Widget 
 *
 * Adds different formatting to the default WordPress Recent Posts Widget
 */

Class My_Recent_Posts_Widget extends WP_Widget_Recent_Posts {

        function widget($args, $instance) {

                if ( ! isset( $args['widget_id'] ) ) {
                $args['widget_id'] = $this->id;
            }

            $title = ( ! empty( $instance['title'] ) ) ? $instance['title'] : __( 'Recent Posts' );

            /** This filter is documented in wp-includes/widgets/class-wp-widget-pages.php */
            $title = apply_filters( 'widget_title', $title, $instance, $this->id_base );

            $number = ( ! empty( $instance['number'] ) ) ? absint( $instance['number'] ) : 5;
            if ( ! $number )
                $number = 5;
            $show_date = isset( $instance['show_date'] ) ? $instance['show_date'] : false;

            /**
             * Filter the arguments for the Recent Posts widget.
             *
             * @since 3.4.0
             *
             * @see WP_Query::get_posts()
             *
             * @param array $args An array of arguments used to retrieve the recent posts.
             */
            $r = new WP_Query( apply_filters( 'widget_posts_args', array(
                'posts_per_page'      => $number,
                'no_found_rows'       => true,
                'post_status'         => 'publish',
                'ignore_sticky_posts' => true
            ) ) );

            if ($r->have_posts()) :
            ?>
            <?php echo $args['before_widget']; ?>
            <?php if ( $title ) {
                echo $args['before_title'] . $title . $args['after_title'];
            } ?>
            <ul>
            <?php while ( $r->have_posts() ) : $r->the_post(); ?>
                <li>
                    <?php the_post_thumbnail(); ?>
                    <a href="<?php the_permalink(); ?>"><?php get_the_title() ? the_title() : the_ID(); ?></a>
                <?php if ( $show_date ) : ?>
                    <span class="post-date"><?php echo get_the_date(); ?></span>
                <?php endif; ?>
                </li>
            <?php endwhile; ?>
            </ul>
            <?php echo $args['after_widget']; ?>
            <?php
            // Reset the global $the_post as this query will have stomped on it
            wp_reset_postdata();

            endif;
        }
}
function my_recent_widget_registration() {
  unregister_widget('WP_Widget_Recent_Posts');
  register_widget('My_Recent_Posts_Widget');
}
add_action('widgets_init', 'my_recent_widget_registration');
6
Pablo Levin