index of
/
home
/
thefkyzp
/
www
/
wp-content
/
plugins
/
ocean-extra
/
includes
/
widgets
/
File: /home/thefkyzp/www/wp-content/plugins/ocean-extra/includes/widgets/recent-posts.php
<?php /** * Recent Posts Widget. * * @package OceanWP WordPress theme */ // Exit if accessed directly if ( ! defined( 'ABSPATH' ) ) { exit; } if ( ! class_exists( 'Ocean_Extra_Recent_Posts_Thumbnails_Widget' ) ) { class Ocean_Extra_Recent_Posts_Thumbnails_Widget extends WP_Widget { /** * Register widget with WordPress. * * @since 1.0.0 */ public function __construct() { parent::__construct( 'ocean_recent_posts', esc_html__( '» Recent Posts', 'ocean-extra' ), array( 'classname' => 'widget-oceanwp-recent-posts recent-posts-widget', 'description' => esc_html__( 'Shows a listing of your recent or random posts.', 'ocean-extra' ), 'customize_selective_refresh' => true, ) ); $this->defaults = array( 'title' => esc_html__( 'Recent Posts', 'ocean-extra' ), 'number' => '3', 'post_type' => 'post', 'taxonomy' => '', 'terms' => '', 'order' => 'DESC', 'orderby' => 'date', ); } /** * Front-end display of widget. * * @see WP_Widget::widget() * @since 1.0.0 * * @param array $args Widget arguments. * @param array $instance Saved values from database. */ public function widget( $args, $instance ) { $new_instance = wp_parse_args( $instance, $this->defaults ); $title = ! empty( $new_instance['title'] ) ? $new_instance['title'] : ''; $post_type = ! empty( $new_instance['post_type'] ) ? $new_instance['post_type'] : ''; $taxonomy = ! empty( $new_instance['taxonomy'] ) ? $new_instance['taxonomy'] : ''; $terms = ! empty( $new_instance['terms'] ) ? $new_instance['terms'] : ''; $number = ! empty( $new_instance['number'] ) ? $new_instance['number'] : ''; $order = ! empty( $new_instance['order'] ) ? $new_instance['order'] : ''; $orderby = ! empty( $new_instance['orderby'] ) ? $new_instance['orderby'] : ''; // Apply filters to the title $title = isset( $instance['title'] ) ? apply_filters( 'widget_title', $instance['title'] ) : ''; // Before widget WP hook echo $args['before_widget']; // Show widget title if ( $title ) { echo $args['before_title'] . esc_html( $title ) . $args['after_title']; } ?> <ul class="oceanwp-recent-posts clr"> <?php // Query args $query_args = array( 'post_type' => $post_type, 'posts_per_page' => $number, 'no_found_rows' => true, ); // Order params - needs FALLBACK don't ever edit! if ( ! empty( $orderby ) ) { $query_args['order'] = $order; $query_args['orderby'] = $orderby; } else { $query_args['orderby'] = $order; // THIS IS THE FALLBACK } // Taxonomy args if ( ! empty( $taxonomy ) && ! empty( $terms ) ) { // Sanitize terms and convert to array $terms = str_replace( ', ', ',', $terms ); $terms = explode( ',', $terms ); // Add to query arg $query_args['tax_query'] = array( array( 'taxonomy' => $taxonomy, 'field' => 'slug', 'terms' => $terms, ), ); } // Exclude current post if ( is_singular() ) { $query_args['post__not_in'] = array( get_the_ID() ); } // Query posts $oceanwp_query = new WP_Query( $query_args ); if ( $oceanwp_query->have_posts() ) : while ( $oceanwp_query->have_posts() ) : $oceanwp_query->the_post(); ?> <li class="clr"> <?php if ( has_post_thumbnail() ) { ?> <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" class="recent-posts-thumbnail"> <?php // Display post thumbnail the_post_thumbnail( 'thumbnail', array( 'alt' => get_the_title(), 'itemprop' => 'image', ) ); ?> <span class="overlay"></span> </a> <?php } ?> <div class="recent-posts-details clr"> <div class="recent-posts-details-inner clr"> <a href="<?php the_permalink(); ?>" class="recent-posts-title"><?php the_title(); ?></a> <div class="recent-posts-info clr"> <div class="recent-posts-date"><?php echo get_the_date(); ?><span class="sep">/</span></div> <div class="recent-posts-comments"><a href="<?php comments_link(); ?>"><?php comments_number( esc_html__( '0 Comments', 'ocean-extra' ), esc_html__( '1 Comment', 'ocean-extra' ), esc_html__( '% Comments', 'ocean-extra' ) ); ?></a></div> </div> </div> </div> </li> <?php endwhile; ?> <?php else : ?> <p class="not-found"> <?php esc_html_e( 'No posts found.', 'ocean-extra' ); ?> </p> <?php endif; ?> </ul> <?php wp_reset_postdata(); ?> <?php // After widget WP hook echo $args['after_widget']; } /** * Sanitize widget form values as they are saved. * * @see WP_Widget::update() * @since 1.0.0 * * @param array $new_instance Values just sent to be saved. * @param array $old_instance Previously saved values from database. * * @return array Updated safe values to be saved. */ public function update( $new_instance, $old_instance ) { $instance = $old_instance; $instance['title'] = ! empty( $new_instance['title'] ) ? strip_tags( $new_instance['title'] ) : ''; $instance['post_type'] = ! empty( $new_instance['post_type'] ) ? strip_tags( $new_instance['post_type'] ) : ''; $instance['taxonomy'] = ! empty( $new_instance['taxonomy'] ) ? strip_tags( $new_instance['taxonomy'] ) : ''; $instance['terms'] = ! empty( $new_instance['terms'] ) ? strip_tags( $new_instance['terms'] ) : ''; $instance['number'] = ! empty( $new_instance['number'] ) ? strip_tags( $new_instance['number'] ) : ''; $instance['order'] = ! empty( $new_instance['order'] ) ? strip_tags( $new_instance['order'] ) : ''; $instance['orderby'] = ! empty( $new_instance['orderby'] ) ? strip_tags( $new_instance['orderby'] ) : ''; return $instance; } /** * Back-end widget form. * * @see WP_Widget::form() * @since 1.0.0 * * @param array $instance Previously saved values from database. */ public function form( $instance ) { $new_instance = wp_parse_args( (array) $instance, $this->defaults ); $title = ! empty( $new_instance['title'] ) ? $new_instance['title'] : ''; $post_type = ! empty( $new_instance['post_type'] ) ? $new_instance['post_type'] : ''; $taxonomy = ! empty( $new_instance['taxonomy'] ) ? $new_instance['taxonomy'] : ''; $terms = ! empty( $new_instance['terms'] ) ? $new_instance['terms'] : ''; $number = ! empty( $new_instance['number'] ) ? $new_instance['number'] : ''; $order = ! empty( $new_instance['order'] ) ? $new_instance['order'] : ''; $orderby = ! empty( $new_instance['orderby'] ) ? $new_instance['orderby'] : ''; ?> <p> <label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_html_e( 'Title', 'ocean-extra' ); ?></label> <input class="widefat" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" /> </p> <p> <label for="<?php echo esc_attr( $this->get_field_id( 'number' ) ); ?>"><?php esc_html_e( 'Number', 'ocean-extra' ); ?></label> <input class="widefat" name="<?php echo esc_attr( $this->get_field_name( 'number' ) ); ?>" type="number" min="0" step="1" value="<?php echo esc_attr( $number ); ?>" /> </p> <p> <label for="<?php echo esc_attr( $this->get_field_id( 'post_type' ) ); ?>"><?php esc_html_e( 'Post Type', 'ocean-extra' ); ?></label> <br /> <select class='oceanwp-select' name="<?php echo esc_attr( $this->get_field_name( 'post_type' ) ); ?>" style="width:100%;"> <option value="post" <?php selected( $post_type, 'post' ); ?>><?php esc_html_e( 'Post', 'ocean-extra' ); ?></option> <?php // Get Post Types $get_post_types = get_post_types( array( 'public' => true, '_builtin' => false, ), 'objects', 'and' ); foreach ( $get_post_types as $key => $val ) : ?> <?php if ( $key != 'post' ) { ?> <option value="<?php echo esc_attr( $key ); ?>" <?php selected( $post_type, $key ); ?>><?php echo esc_html( $val->labels->name ); ?></option> <?php } ?> <?php endforeach; ?> </select> </p> <p> <label for="<?php echo esc_attr( $this->get_field_id( 'taxonomy' ) ); ?>"><?php esc_html_e( 'Query By Taxonomy', 'ocean-extra' ); ?></label> <br /> <select class='oceanwp-select' name="<?php echo esc_attr( $this->get_field_name( 'taxonomy' ) ); ?>" style="width:100%;"> <option value="" <?php if ( ! $taxonomy ) { ?> selected="selected"<?php } ?>><?php esc_html_e( 'No', 'ocean-extra' ); ?></option> <?php // Get Taxonomies $get_taxonomies = get_taxonomies( array( 'public' => true, ), 'objects' ); ?> <?php foreach ( $get_taxonomies as $get_taxonomy ) : ?> <option value="<?php echo esc_attr( $get_taxonomy->name ); ?>" <?php selected( $taxonomy, $get_taxonomy->name ); ?>><?php echo esc_html( ucfirst( $get_taxonomy->labels->singular_name ) ); ?></option> <?php endforeach; ?> </select> </p> <p> <label for="<?php echo esc_attr( $this->get_field_id( 'terms' ) ); ?>"><?php esc_html_e( 'Terms', 'ocean-extra' ); ?></label> <br /> <input class="widefat" name="<?php echo esc_attr( $this->get_field_name( 'terms' ) ); ?>" type="text" value="<?php echo esc_attr( $terms ); ?>" /> <small><?php esc_html_e( 'Enter the term slugs to query by seperated by a "comma"', 'ocean-extra' ); ?></small> </p> <p> <label for="<?php echo esc_attr( $this->get_field_id( 'order' ) ); ?>"><?php esc_html_e( 'Order', 'ocean-extra' ); ?></label> <br /> <select class='oceanwp-select' name="<?php echo esc_attr( $this->get_field_name( 'order' ) ); ?>" style="width:100%;"> <option value="DESC" <?php selected( $order, 'DESC', true ); ?>><?php esc_html_e( 'Descending', 'ocean-extra' ); ?></option> <option value="ASC" <?php selected( $order, 'ASC', true ); ?>><?php esc_html_e( 'Ascending', 'ocean-extra' ); ?></option> </select> </p> <p> <label for="<?php echo esc_attr( $this->get_field_id( 'orderby' ) ); ?>"><?php esc_html_e( 'Order By', 'ocean-extra' ); ?>:</label> <br /> <select class='oceanwp-select' name="<?php echo esc_attr( $this->get_field_name( 'orderby' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'orderby' ) ); ?>" style="width:100%;"> <?php // Orderby options $orderby_array = array( 'date' => esc_html__( 'Date', 'ocean-extra' ), 'title' => esc_html__( 'Title', 'ocean-extra' ), 'modified' => esc_html__( 'Modified', 'ocean-extra' ), 'author' => esc_html__( 'Author', 'ocean-extra' ), 'rand' => esc_html__( 'Random', 'ocean-extra' ), 'comment_count' => esc_html__( 'Comment Count', 'ocean-extra' ), ); foreach ( $orderby_array as $key => $value ) { ?> <option value="<?php echo esc_attr( $key ); ?>" <?php selected( $orderby, $key ); ?>> <?php echo esc_attr( strip_tags( $value ) ); ?> </option> <?php } ?> </select> </p> <?php } } } register_widget( 'Ocean_Extra_Recent_Posts_Thumbnails_Widget' );