HEX
Server: Apache
System: Linux webm005.cluster121.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
User: adventp (418412)
PHP: 7.4.33
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/adventp/www/wp-content/plugins/ut-shortcodes/shortcodes/blog.php
<?php

if ( ! defined( 'ABSPATH' ) ) exit;

if( !class_exists( 'UT_Blog' ) ) {
	
    class UT_Blog {
        
        private $shortcode;
            
        function __construct() {
			
            /* shortcode base */
            $this->shortcode = 'ut_blog';
            
            add_action( 'vc_before_init', array( $this, 'ut_map_shortcode' ) );
            add_shortcode( $this->shortcode, array( $this, 'ut_create_shortcode' ) );	
            
		}
        
        function ut_map_shortcode() {

            vc_map(
                array(
                    'name'            => esc_html__( 'Blog Excerpt (old)', 'ut_shortcodes' ),
                    'base'            => $this->shortcode,
                    //'icon'          => 'fa fa-th ut-vc-module-icon',
                    'icon'            => UT_SHORTCODES_URL . '/admin/img/vc_icons/blog-excerpt.png',
                    'category'        => 'Community',
                    'deprecated'      => true,
                    'class'           => 'ut-vc-icon-module ut-community-module',
                    'content_element' => true,
                    'params'          => array(

                        array(
                            'type'        => 'textfield',
                            'heading'     => esc_html__( 'Posts to Display', 'ut_shortcodes' ),
                            'description' => esc_html__( 'Enter desired amount of posts to display. Default 3.', 'ut_shortcodes' ),
                            'param_name'  => 'numberposts',
                            'group'       => 'General'
                        ),

                        array(
                            'type'        => 'textfield',
                            'heading'     => esc_html__( 'Excerpt Length', 'ut_shortcodes' ),
                            'description' => esc_html__( '', 'ut_shortcodes' ),
                            'param_name'  => 'excerpt',
                            'group'       => 'General'
                        ),

                        /*array(
                            'type' => 'dropdown',
                            'heading' => __( 'Order by', 'ut_shortcodes' ),
                            'param_name' => 'orderby',
                            'value' => array(
                                __( 'Date', 'ut_shortcodes' ) => 'date',
                                __( 'Order by post ID', 'ut_shortcodes' ) => 'ID',
                                __( 'Author', 'ut_shortcodes' ) => 'author',
                                __( 'Last modified date', 'ut_shortcodes' ) => 'modified',
                                __( 'Number of comments', 'ut_shortcodes' ) => 'comment_count',
                                __( 'Random order', 'ut_shortcodes' ) => 'rand',
                            ),
                            'description' => __( 'Select order type.', 'ut_shortcodes' ),
                            'group' => __( 'Data Settings', 'ut_shortcodes' ),
                        ),*/
                        array(
                            'type'        => 'textfield',
                            'heading'     => esc_html__( 'Show Posts by Category ID', 'ut_shortcodes' ),
                            'description' => esc_html__( 'Enter category ID, separate multiple category IDs with comma.', 'ut_shortcodes' ),
                            'param_name'  => 'cat',
                            'group'       => 'Query Settings'
                        ),

                        array(
                            'type'        => 'textfield',
                            'heading'     => esc_html__( 'Show Posts by Category Name', 'ut_shortcodes' ),
                            'description' => esc_html__( 'Enter category slug, separate multiple category slugs with comma.', 'ut_shortcodes' ),
                            'param_name'  => 'category_name',
                            'group'       => 'Query Settings'
                        ),

                        array(
                            'type'        => 'textfield',
                            'heading'     => esc_html__( 'Link text to main blog.', 'ut_shortcodes' ),
                            'param_name'  => 'buttontext',
                            'group'       => 'General'
                        ),


                    )

                )

            ); /* end mapping */

        
        }
        
        function ut_create_shortcode( $atts, $content = NULL ) {
            
            $class = '';
            
            extract( shortcode_atts( array (
                'numberposts'     => '3',
                'excerpt'         => '40',
                'cat'             => '',
                'category_name'   => '',                
                'buttontext'      => esc_html__('Read More' , 'ut_shortcodes'),
                'class'           => '',
            ), $atts ) ); 
            
            $args = array(
                'post_type'      => 'post',
                'cat'            => $cat,
                'category_name'  => $category_name,
                'posts_per_page' => $numberposts,    
            );
            
            /* blog output */
            $output = '<div class="ut-bs-wrap ' . $class . '">';
            
                /* initiate query */
                $blog_query = new WP_Query( $args );
            
				$i = 1;
			
                /* start loop */
                if ( $blog_query->have_posts() ) : while ( $blog_query->have_posts() ) : $blog_query->the_post();
                    
                    /* post format */
                    $post_format = get_post_format();
                    
                    /* start single blog entry */
                    $output .= '<div class="grid-33 tablet-grid-33 mobile-grid-100"><article id="post-' . $blog_query->post->ID . '" class="' . implode( " " ,get_post_class( "clearfix" ) ) . '">'; 
                    
                    /* entry header ( ho headline for quotes ) */
                    if( $post_format != 'quote' ) {    
                        
                        $output .= '<!-- entry-header --><header class="entry-header">';
                        
                            $output .= '<h3 class="entry-title"><a href="' . get_permalink() . '" rel="bookmark" title="' . sprintf(esc_html__("Permanent Link to %s", "ut_shortcodes"), get_the_title() ) . '">' . get_the_title() . '</a></h3>';
                            
                        $output .= '</header>';
                        
                    }
                    
                    /* entry meta */
                    $output .= '<div class="entry-meta">';
        
                        $output .= '<span class="ut-sticky"><i class="fa fa-thumb-tack"></i>' . esc_html__("Sticky Post", "ut_shortcodes") . '</span>';
                        $output .= '<span class="date-format"><i class="fa fa-clock-o"></i>' . esc_html__("On", "ut_shortcodes") . ' <span>' . get_the_time( get_option("date_format") ) . '</span></span>';
                        
                        if ( ! post_password_required() && ( comments_open() || '0' != get_comments_number() ) ) : 
                        
                            $output .= '<span class="comments-link"><i class="fa fa-comments-o"></i>' . esc_html__("With", "ut_shortcodes") . ' ' . ut_get_comments_popup_link( esc_html__("No Comments", "ut_shortcodes"), esc_html__("1 Comment", "ut_shortcodes"), esc_html__("% Comments", "ut_shortcodes") ) . '</span>';
                        
                        endif;
                        
                    $output .= '</div>';
                                    
                    /* post thumbnail */
                    if ( has_post_thumbnail() && ! post_password_required() ) {    
                    
                        $postthumbnail = wp_get_attachment_url( get_post_thumbnail_id( $blog_query->post->ID ) );
                        
                        $output .= '<div class="entry-thumbnail">';
                            
                            $output .= '<a title="' . sprintf(esc_html__('Permanent Link to %s', 'ut_shortcodes'), get_the_title()) . '" href="' . get_permalink() . '">';
                                
                                $output .= get_the_post_thumbnail($blog_query->post->ID , "medium");
                                
                            $output .= '</a>';
                            
                        $output .= '</div>';
                        
                    }    
                    
                    /* post format gallery */
                    if( $post_format == 'gallery' && function_exists("ut_flex_slider") ) {

                        ob_start();

                        ut_flex_slider( $blog_query->post->ID , true );

                        $output .= ob_get_clean();

                        if( !empty($excerpt) && (int)$excerpt ) {
                            
                            $the_content = $this->get_excerpt_by_id( $blog_query->post->ID , $excerpt );
                            
                        } else {
                            
                            /* default content without gallery shortcode */
                            $the_content = get_the_content( '<span class="more-link">' . esc_html__( 'Read more', 'ut_shortcodes' ) . '<i class="fa fa-chevron-circle-right"></i></span>' );
                            $the_content = preg_replace( '/(.?)\[(gallery)\b(.*?)(?:(\/))?\](?:(.+?)\[\/\2\])?(.?)/s', '$1$6', $the_content ); 
                            $the_content = apply_filters( 'the_content' , $the_content );
                            
                        }
                        
                        
                    } elseif ( $post_format == 'gallery' && !function_exists("ut_flex_slider") ) {
                        
                        /* default content with wordPress gallery shortcode */
                        if( !empty($excerpt) && (int)$excerpt ) {
                            
                            $the_content = $this->get_excerpt_by_id( $blog_query->post->ID , $excerpt );
                            
                        } else {
                            
                            $the_content = get_the_content( '<span class="more-link">' . esc_html__( 'Read more', 'ut_shortcodes' ) . '<i class="fa fa-chevron-circle-right"></i></span>' );
                            $the_content = apply_filters( 'the_content' , $the_content );    
                            
                        }
                    
                    } else {
                        
                        /* content for all other post formats */
                        if( !empty($excerpt) && (int)$excerpt ) {
                            
                            $the_content = $this->get_excerpt_by_id( $blog_query->post->ID , $excerpt );
                            
                        } else {
                            
                            $the_content = get_the_content( '<span class="more-link">' . esc_html__( 'Read more', 'ut_shortcodes' ) . '<i class="fa fa-chevron-circle-right"></i></span>' );
                            $the_content = apply_filters( 'the_content' , $the_content );
                                
                        }
                    
                    }
                    
                    /* post content */
                    $output .= '<!-- entry-content --><div class="entry-content clearfix">';
                        
                        /* add content which has been defined above */
                        $output .= $the_content;
                    
                    $output .= '</div><!-- close entry-content -->';
                                    
                    /* end single blog entry */
                    $output .= '</article></div><!-- close post -->';
                	
					if( ($i % 3) == 0 ){
						
						 $output .= '<div class="clear"></div>';
						
					}
			
					$i++;
			
                /* loop finished */
                endwhile; endif;        
                
                /* Restore original Post Data */
                wp_reset_postdata();
            
            $output .= '<div class="clear"></div>';
            
            /* create link to blog */
            $blog_id = get_option('page_for_posts');        
            $output .= '<div class="ut-bs-holder"><a class="ut-bs-btn" href="' . get_permalink( $blog_id ) . '">' . $buttontext . '</a></div>';
                        
            $output .= '</div>';
                            
            return $output;
        
        }
        
        function get_excerpt_by_id($post, $length = 10, $tags = '<a><em><strong>') {
        
            if( $post ) {
                
                $post = get_post($post);
                
            } elseif(!is_object($post)) {
                
                return false;
                
            }

            if( has_excerpt( $post->ID ) ) {
                
                $the_excerpt = $post->post_excerpt;
                $the_excerpt = apply_filters('the_content', $the_excerpt);
                $the_excerpt .= '<p><a class="more-link" href="' . get_permalink( $post->ID ) . '"><span class="more-link">' . esc_html__( 'Read More' , 'ut_shortcodes' ) . '<i class="fa fa-chevron-circle-right"></i></span></a></p>';
                return $the_excerpt;
                
            } else {
                
                $the_excerpt = $post->post_content;
                
            }
             
            $the_excerpt = strip_shortcodes(strip_tags($the_excerpt), $tags);
            $the_excerpt = preg_split('/\s+/', $the_excerpt, $length + 1);
            $excerpt_waste = array_pop($the_excerpt);
            $the_excerpt = implode(" ",$the_excerpt);
            
            if( isset($the_excerpt) && !empty($the_excerpt) ) {
                
                $the_excerpt  = '<p>' . $the_excerpt . '</p>';
                $the_excerpt .= '<p><a class="more-link" href="' . get_permalink( $post->ID ) . '"><span class="more-link">' . esc_html__( 'Read More' , 'ut_shortcodes' ) . '<i class="fa fa-chevron-circle-right"></i></span></a></p>';
                
            } else {
                
                $the_excerpt = '<p><a class="more-link" href="' . get_permalink( $post->ID ) . '"><span class="more-link">' . esc_html__( 'Read More' , 'ut_shortcodes' ) . '<i class="fa fa-chevron-circle-right"></i></span></a></p>';
            }
    
            return $the_excerpt;
            
        }
            
    }

}

new UT_Blog;