[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: widget-recent-posts.php
<?php defined( 'ABSPATH' ) or exit( -1 ); /** * Recent Posts widgets * * @package Alico * @version 1.0 */ class Recent_Posts_Widget extends WP_Widget { function __construct() { parent::__construct( 'ct_recent_posts', esc_html__( '* Recent Posts', 'alico' ), array( 'description' => esc_html__( 'Shows your most recent posts.', 'alico' ), 'customize_selective_refresh' => true, ) ); } /** * Outputs the HTML for this widget. * * @param array $args An array of standard parameters for widgets in this theme * @param array $instance An array of settings for this widget instance * @return void Echoes it's output **/ function widget( $args, $instance ) { $instance = wp_parse_args( (array) $instance, array( 'title' => esc_html__( 'Recent Posts', 'alico' ), 'number' => 4, 'post_in' => '', 'layout' => 'layout1', ) ); $title = empty( $instance['title'] ) ? esc_html__( 'Recent Posts', 'alico' ) : $instance['title']; $title = apply_filters( 'widget_title', $title, $instance, $this->id_base ); echo wp_kses_post($args['before_widget']); echo wp_kses_post($args['before_title']) . wp_kses_post($title) . wp_kses_post($args['after_title']); $number = absint( $instance['number'] ); if ( $number <= 0 || $number > 10) { $number = 4; } $post_in = $instance['post_in']; $layout = $instance['layout']; $sticky = ''; if($post_in == 'featured') { $sticky = get_option( 'sticky_posts' ); } $r = new WP_Query( array( 'post_type' => 'post', 'posts_per_page' => $number, 'no_found_rows' => true, 'post_status' => 'publish', 'ignore_sticky_posts' => true, 'post__in' => $sticky, ) ); if ( $r->have_posts() ) { echo '<div class="posts-list '.esc_attr($layout).'">'; while ( $r->have_posts() ) { $r->the_post(); global $post; ?> <div class="entry-brief"> <?php if (has_post_thumbnail($post->ID) && wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), false)): $thumbnail_url = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'thumbnail', false); ?> <div class="entry-media"> <a href="<?php the_permalink(); ?>"><img src="<?php echo esc_url($thumbnail_url[0]); ?>" alt="<?php echo esc_attr( get_the_title() ); ?>" /></a> </div> <?php endif; ?> <div class="entry-content"> <?php printf( '<h4 class="entry-title"><a href="%1$s" title="%2$s">%3$s</a></h4>', esc_url( get_permalink() ), esc_attr( get_the_title() ), get_the_title() ); ?> <div class="item-date"> <?php echo get_the_date(); ?> </div> </div> </div> <?php } echo '</div>'; } wp_reset_postdata(); wp_reset_query(); echo wp_kses_post($args['after_widget']); } /** * Deals with the settings when they are saved by the admin. Here is * where any validation should be dealt with. * * @param array $new_instance An array of new settings as submitted by the admin * @param array $old_instance An array of the previous settings * @return array The validated and (if necessary) amended settings **/ function update( $new_instance, $old_instance ) { $instance = $old_instance; $instance['title'] = sanitize_text_field( $new_instance['title'] ); $instance['number'] = absint( $new_instance['number'] ); $instance['post_in'] = strip_tags($new_instance['post_in']); $instance['layout'] = strip_tags($new_instance['layout']); return $instance; } /** * Displays the form for this widget on the Widgets page of the WP Admin area. * * @param array $instance An array of the current settings for this widget * @return void Echoes it's output **/ function form( $instance ) { $instance = wp_parse_args( (array) $instance, array( 'title' => esc_html__( 'Recent Posts', 'alico' ), 'number' => 4, ) ); $title = $instance['title'] ? esc_attr( $instance['title'] ) : esc_html__( 'Recent Posts', 'alico' ); $number = absint( $instance['number'] ); $post_in = isset($instance['post_in']) ? esc_attr($instance['post_in']) : ''; $layout = isset($instance['layout']) ? esc_attr($instance['layout']) : ''; ?> <p> <label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_html_e( 'Title:', 'alico' ); ?></label> <input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" 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_url($this->get_field_id('post_in')); ?>"><?php esc_html_e( 'Post in', 'alico' ); ?></label> <select class="widefat" id="<?php echo esc_attr( $this->get_field_id('post_in') ); ?>" name="<?php echo esc_attr( $this->get_field_name('post_in') ); ?>"> <option value="recent"<?php if( $post_in == 'recent' ){ echo 'selected="selected"';} ?>><?php esc_html_e('Recent', 'alico'); ?></option> <option value="featured"<?php if( $post_in == 'featured' ){ echo 'selected="selected"';} ?>><?php esc_html_e('Featured', 'alico'); ?></option> </select> </p> <p> <label for="<?php echo esc_attr( $this->get_field_id( 'number' ) ); ?>"><?php esc_html_e( 'Number of posts to show:', 'alico' ); ?></label> <input class="tiny-text" id="<?php echo esc_attr( $this->get_field_id( 'number' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'number' ) ); ?>" type="number" step="1" min="1" value="<?php echo esc_attr( $number ); ?>" size="3" /> </p> <?php } } add_action( 'widgets_init', 'alico_register_recent_widget' ); function alico_register_recent_widget(){ if(function_exists('ct_register_wp_widget')){ ct_register_wp_widget( 'Recent_Posts_Widget' ); } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.8 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002