コード例 #1
0
ファイル: single.php プロジェクト: eq0rip/Hamroreview.com
         $src = getVideoPlayerURL(getPostVideo($recent['post_video']), $recent['post_thumb'] != '');
         if ($src) {
             $recent['post_video'] = substituteVideo('<video src="' . $src . '">', 310, 310);
         }
     }
 } else {
     if ($recent['post_format'] == 'audio') {
         $recent['post_audio'] = getPostAudio($recent['post_content_prepared'], false);
         if ($recent['post_audio'] == '') {
             $src = getPostAudio($recent['post_content_prepared'], true);
             if ($src) {
                 $recent['post_audio'] = substituteAudio('<audio src="' . $src . '">');
             }
         }
         if ($recent['post_audio'] != '' && get_custom_option('substitute_audio') == 'yes') {
             $src = getPostAudio($recent['post_audio']);
             if ($src) {
                 $recent['post_audio'] = substituteAudio('<audio src="' . $src . '">');
             }
         }
     } else {
         if ($recent['post_format'] == 'image' && !$recent['$post_thumb']) {
             if (($src = getPostImage($recent['post_content_prepared'])) != '') {
                 $recent['post_thumb'] = getResizedImageTag($src, 310, 310);
             }
         } else {
             if ($recent['post_format'] == 'link') {
                 $post_url_data = getPostLink($recent['post_content_prepared'], false);
                 $recent['post_url'] = $post_url_data['url'];
                 $recent['post_url_target'] = $post_url_data['target'];
             }
コード例 #2
0
ファイル: shortcodes.php プロジェクト: eq0rip/Hamroreview.com
function sc_blogger($atts, $content = null)
{
    extract(shortcode_atts(array("id" => "", "style" => "regular", "bubble_color" => "", "ids" => "", "cat" => "", "count" => "3", "offset" => "", "orderby" => "date", "order" => "desc", "descr" => "0", "readmore" => "0", "dir" => "horizontal", "border" => "0", "rating" => "1", "top" => "", "bottom" => "", "left" => "", "right" => ""), $atts));
    $s = ($top !== '' ? 'margin-top:' . $top . 'px;' : '') . ($bottom !== '' ? 'margin-bottom:' . $bottom . 'px;' : '') . ($left !== '' ? 'margin-left:' . $left . 'px;' : '') . ($right !== '' ? 'margin-right:' . $right . 'px;' : '');
    global $THEMEREX_sc_blogger_counter, $post;
    $THEMEREX_sc_blogger_counter = 0;
    if (!in_array($style, array('regular', 'date', 'image_large', 'image_medium', 'image_small', 'bubble_left', 'bubble_top', 'accordion', 'puzzles', 'underline'))) {
        $style = 'regular';
    }
    if (!empty($ids)) {
        $posts = explode(',', str_replace(' ', '', $ids));
        $count = count($posts);
    }
    if ($style == 'accordion') {
        $dir = 'vertical';
    }
    $output = $style == 'puzzles' ? '' : '<div' . ($id ? ' id="' . $id . '"' : '') . ' class="sc_blogger' . ' sc_blogger_' . ($dir == 'vertical' ? 'vertical' : 'horizontal') . ' style_' . $style . ($style == 'accordion' ? ' sc_accordion' : '') . ($dir != 'vertical' && $style != 'puzzles' ? ' sc_columns sc_columns_count_' . $count : '') . '"' . ($s != '' ? ' style="' . $s . '"' : '') . '>';
    $counters = get_theme_option("blog_counters");
    $args = array('post_status' => current_user_can('read_private_pages') && current_user_can('read_private_posts') ? array('publish', 'private') : 'publish', 'posts_per_page' => $count, 'ignore_sticky_posts' => 1, 'order' => $order == 'asc' ? 'asc' : 'desc', 'orderby' => 'date');
    if ($offset > 0 && empty($ids)) {
        $args['offset'] = $offset;
    }
    $args = addSortOrderInQuery($args, $orderby, $order);
    $args = addPostsAndCatsInQuery($args, $ids, $cat);
    $query = new WP_Query($args);
    while ($query->have_posts()) {
        $query->the_post();
        $post_id = get_the_ID();
        $post_protected = post_password_required();
        $post_format = get_post_format();
        $post_link = get_permalink();
        $post_comments_link = $counters == 'comments' ? get_comments_link($post_id) : $post_link;
        $post_comments = get_comments_number();
        $post_views = getPostViews($post_id);
        $post_date = prepareDateForTranslation(get_the_date());
        $post_date_sql = get_the_date('Y-m-d H:i:s');
        $post_date_diff = getDateOrDifference($post_date_sql);
        $post_icon = getPostFormatIcon($post_format);
        $post_author = get_the_author();
        $post_author_id = get_the_author_meta('ID');
        $post_author_url = get_author_posts_url($post_author_id, '');
        $post_title_tag = $dir == 'vertical' ? 'h3' : 'h4';
        $post_thumb_w = $post_thumb_h = 0;
        if (themerex_strpos($style, 'bubble') !== false) {
            $post_custom_options = get_post_meta($post_id, 'post_custom_options', true);
            $post_icon = isset($post_custom_options['page_icon']) ? $post_custom_options['page_icon'] : $post_icon;
            $post_title_tag = 'h2';
        } else {
            if ($style == 'image_small') {
                $post_thumb = getResizedImageTag($post_id, 120, 80);
            } else {
                if ($style == 'image_medium') {
                    $post_thumb = getResizedImageTag($post_id, $post_thumb_w = 279, $post_thumb_h = 186);
                } else {
                    if ($style == 'image_large') {
                        $post_thumb = getResizedImageTag($post_id, $post_thumb_w = 466, $post_thumb_h = 310);
                    } else {
                        if ($style == 'puzzles') {
                            $post_thumb = getResizedImageTag($post_id, $post_thumb_w = 310, $post_thumb_h = 310);
                        }
                    }
                }
            }
        }
        //$post_attachment = wp_get_attachment_url(get_post_thumbnail_id($post_id));
        if (get_theme_option('preserve_decoration') == 'no') {
            // -------------- Old way to get title, excerpt and content -----------------------
            $post_title = get_the_title();
            $post_content_full = $post->post_content;
            //get_the_content() not used, because it trim content up to <!-- more --> in each case!
            $post_content_prepared = strip_shortcodes($post_content_full);
            //do_shortcode($post_content_full); //do_shortcode() make a recursion if insert shortcode [blogger] in the posts!!!!
            $post_excerpt = in_array($post_format, array('quote', 'link')) && $style == 'puzzles' ? $post_content_prepared : ($descr > 0 ? strip_tags(strip_shortcodes(getPostDescription($descr, $readmore ? '' : '...'))) : '');
        } else {
            // ----------------- New way to get title, excerpt and content -----------------------
            $post_title = $post_title_plain = get_the_title();
            global $more;
            $old_more = $more;
            $more = -1;
            $post_content_full = get_the_content();
            $post_content_prepared = do_shortcode($post_content_full);
            $more = $old_more;
            $post_content = get_the_content(null);
            $post_excerpt = has_excerpt() || $post_protected ? get_the_excerpt() : '';
            if (empty($post_excerpt)) {
                if (($more_pos = themerex_strpos($post_content_full, '<span id="more-')) !== false) {
                    $post_excerpt = themerex_substr($post_content_full, 0, $more_pos);
                } else {
                    $post_excerpt = in_array($post_format, array('quote', 'link')) ? $post_content : get_the_excerpt();
                }
            }
            $post_excerpt = str_replace('[&hellip;]', '', $post_excerpt);
            if (!in_array($post_format, array('quote', 'link')) && $descr > 0 && themerex_strlen($post_excerpt) > $descr) {
                $post_excerpt = getShortString(strip_tags(do_shortcode($post_excerpt)), $descr, $readmore ? '' : '...');
            }
            $post_excerpt .= !in_array($post_format, array('quote', 'link')) && $readmore ? '&nbsp;<a href="' . $post_link . '" class="readmore">' . ($readmore == 1 ? '&raquo;' : $readmore) . '</a>' : '';
            //$post_content = apply_filters('the_content', $post_content);
            // ------------------  /New way to get title, excerpt and content -----------------------
        }
        $post_excerpt = apply_filters(in_array($post_format, array('quote', 'link')) ? 'the_content' : 'the_excerpt', force_balance_tags($post_excerpt));
        // Extract gallery, video and audio from full post content
        $post_gallery = $post_video = $post_audio = $post_url = $post_url_target = '';
        if (in_array($style, array('image_medium', 'image_large', 'puzzles'))) {
            if ($post_format == 'gallery') {
                $post_gallery = buildGalleryTag(getPostGallery($post_content_full, $post_id), $post_thumb_w, $post_thumb_h);
            } else {
                if ($post_format == 'video') {
                    $post_video = getPostVideo($post_content_full, false);
                    if ($post_video == '') {
                        $src = getVideoPlayerURL(getPostVideo($post_content_full, true), $post_thumb != '');
                        if ($src) {
                            $post_video = substituteVideo('<video src="' . $src . '">', $post_thumb_w, $post_thumb_h);
                        }
                    }
                    if ($post_video != '' && get_custom_option('substitute_video') == 'yes') {
                        $src = getVideoPlayerURL(getPostVideo($post_video), $post_thumb != '');
                        if ($src) {
                            $post_video = substituteVideo('<video src="' . $src . '">', $post_thumb_w, $post_thumb_h);
                        }
                    }
                } else {
                    if ($post_format == 'audio') {
                        $post_audio = getPostAudio($post_content_full, false);
                        if ($post_audio == '') {
                            $src = getPostAudio($post_content_full, true);
                            if ($src) {
                                $post_audio = substituteAudio('<audio src="' . $src . '">');
                            }
                        }
                        if ($post_audio != '' && get_custom_option('substitute_audio') == 'yes') {
                            $src = getPostAudio($post_audio);
                            if ($src) {
                                $post_audio = substituteAudio('<audio src="' . $src . '">');
                            }
                        }
                    } else {
                        if ($post_format == 'image' && !$post_thumb) {
                            if (($src = getPostImage($post_content_full)) != '') {
                                $post_thumb = getResizedImageTag($src, $post_thumb_w, $post_thumb_h);
                            }
                        } else {
                            if ($post_format == 'link') {
                                $post_url_data = getPostLink($post_content_full, false);
                                $post_url = $post_url_data['url'];
                                $post_url_target = $post_url_data['target'];
                            }
                        }
                    }
                }
            }
        }
        // Get all post's categories
        $post_categories = getCategoriesByPostId($post_id);
        $post_categories_str = '';
        $post_accent_color = '';
        $post_accent_category = '';
        $ex_cats = explode(',', get_theme_option('exclude_cats'));
        for ($i = 0; $i < count($post_categories); $i++) {
            if (in_array($post_categories[$i]['term_id'], $ex_cats)) {
                continue;
            }
            if ($post_accent_category == '') {
                if (get_theme_option('close_category') == 'parental') {
                    $parent_cat_id = 0;
                    //(int) get_custom_option('category_id');
                    $parent_cat = getParentCategory($post_categories[$i]['term_id'], $parent_cat_id);
                    if ($parent_cat) {
                        $post_accent_category = $parent_cat['name'];
                        if ($post_accent_color == '') {
                            $post_accent_color = getCategoryInheritedProperty($parent_cat['term_id'], 'theme_accent_color');
                        }
                    }
                } else {
                    $post_accent_category = $post_categories[$i]['name'];
                    if ($post_accent_color == '') {
                        $post_accent_color = getCategoryInheritedProperty($post_categories[$i]['term_id'], 'theme_accent_color');
                    }
                }
            }
            $post_categories_str .= '<a class="cat_link" href="' . $post_categories[$i]['link'] . '">' . $post_categories[$i]['name'] . ($i < count($post_categories) - 1 ? ',' : '') . '</a> ';
        }
        if ($post_accent_category == '' && count($post_categories) > 0) {
            $post_accent_category = $post_categories[0]['name'];
            if ($post_accent_color == '') {
                $post_accent_color = getCategoryInheritedProperty($post_categories[0]['term_id'], 'theme_accent_color');
            }
        }
        if ($style == 'puzzles') {
            $post_hover_bg = get_custom_option('puzzles_post_bg', null, $post_id);
            $post_hover_pos = get_custom_option('puzzles_post_position', null, $post_id);
        }
        // Prepare reviews block
        $reviewsBlock = '';
        $avg_author = 0;
        if ($rating > 0 && get_custom_option('show_reviews', null, $post_id) == 'yes') {
            $avg_author = marksToDisplay(get_post_meta($post_id, 'reviews_avg' . (get_theme_option('reviews_first') == 'author' ? '' : '2'), true));
            if ($avg_author > 0) {
                $reviewsBlock .= '<div class="reviews_summary blog_reviews' . ($style == 'puzzles' ? ' theme_puzzles' : '') . '"' . ($style == 'puzzles' && $post_hover_bg != '' && $post_hover_bg != 'default' ? ' style="background-color:' . $post_hover_bg . ';"' : '') . '>' . '<div class="criteria_summary criteria_row">' . getReviewsSummaryStars($avg_author) . '</div>' . '</div>';
            }
        }
        // Start output
        $THEMEREX_sc_blogger_counter++;
        $output .= '<div class="sc_blogger_item' . ($style == 'puzzles' ? ' sc_blogger_item_puzzles' : '') . ($style == 'date' ? ' sc_blogger_item_date' : '') . ($style == 'accordion' ? ' sc_accordion_item' : '') . ($dir != 'vertical' && $style != 'puzzles' ? ' sc_column_item sc_column_item_' . $THEMEREX_sc_blogger_counter : '') . ($border == 1 ? ' sc_blogger_item_bordered' : '') . ($THEMEREX_sc_blogger_counter % 2 == 1 ? ' odd' : ' even') . ($THEMEREX_sc_blogger_counter == 1 ? ' first' : '') . '">
			';
        if ($style == 'puzzles') {
            $show_content_block = !in_array($post_format, array('link', 'image')) || !$post_thumb;
            $puzzles_style = get_custom_option('puzzles_style');
            $no_thumb = in_array($post_format, array('quote', 'link', 'image')) || !$post_thumb && (!$post_gallery || $post_protected);
            $output .= '<div class="post_thumb image_wrapper post_format_' . $post_format . ' ' . ($no_thumb ? 'no_thumb' : $post_hover_pos) . '"' . ($post_video && !$post_protected ? ' data-video="' . htmlspecialchars($post_video) . '"' : '') . '>';
            if ($post_thumb && ($post_format != 'gallery' || !$post_gallery || get_custom_option('gallery_instead_image') == 'no')) {
                // If post have thumbnail - show it
                if ($post_format == 'link' && $post_url != '') {
                    $output .= '<a href="' . $post_url . '"' . ($post_url_target ? ' target="' . $post_url_target . '"' : '') . '>' . $post_thumb . '</a>';
                } else {
                    if ($post_link != '') {
                        $output .= '<a href="' . $post_link . '">' . $post_thumb . '</a>';
                    } else {
                        $output .= $post_thumb;
                    }
                }
                if ($post_format == 'video' && $post_video && !$post_protected) {
                    $output .= '<a href="#" class="post_video_play icon-play"></a>';
                }
            } else {
                if ($post_gallery && !$post_protected) {
                    // If post have gallery - show it
                    if ($post_link != '') {
                        $output .= '<a href="' . $post_link . '">' . $post_gallery . '</a>';
                    } else {
                        $output .= $post_gallery;
                    }
                } else {
                    if ($post_video && !$post_protected) {
                        // If post have video - show it
                        $output .= $post_video;
                        $show_content_block = false;
                    }
                }
            }
            $output .= '<span class="post_format theme_accent_bg ' . $post_icon . '"' . (themerex_substr($post_accent_color, 0, 1) == '#' ? ' style="background-color: ' . $post_accent_color . '"' : '') . '></span>';
            if ($puzzles_style == 'heavy') {
                if ($post_accent_category != '') {
                    $output .= '<span class="post_category theme_accent_bg"' . (themerex_substr($post_accent_color, 0, 1) == '#' ? ' style="background-color: ' . $post_accent_color . '"' : '') . '>' . $post_accent_category . '</span>';
                }
            } else {
                if ($show_content_block) {
                    $output .= '<div class="post_content_light">' . ($post_accent_category != '' ? '<span class="post_category theme_accent_bg"' . (themerex_substr($post_accent_color, 0, 1) == '#' ? ' style="background-color: ' . $post_accent_color . '"' : '') . '>' . $post_accent_category . '</span><br>' : '') . '<h2 class="post_subtitle theme_puzzles"' . ($post_hover_bg != '' && $post_hover_bg != 'default' ? ' style="background-color:' . $post_hover_bg . ';"' : '') . '><a href="' . $post_link . '">' . $post_title . '</a></h2><br>' . $reviewsBlock . '</div>';
                }
            }
            if ($show_content_block) {
                $output .= '<div class="post_content_wrapper theme_puzzles"' . ($post_hover_bg != '' && $post_hover_bg != 'default' ? ' style="background-color:' . $post_hover_bg . ';"' : '') . '>';
                if (!in_array($post_format, array('quote', 'aside'))) {
                    $output .= '<h2 class="post_subtitle"><a href="' . $post_link . '">' . $post_title . '</a></h2>';
                    $output .= $reviewsBlock;
                }
                $output .= '<div class="post_descr">' . $post_excerpt . '</div>' . '<div class="post_content_padding theme_puzzles"';
                if ($post_hover_bg != '' && $post_hover_bg != 'default') {
                    $rgb = Hex2RGB($post_hover_bg);
                    $post_hover_ie = str_replace('#', '', $post_hover_bg);
                    $output .= " style=\"\n\t\t\t\t\t\tbackground: -moz-linear-gradient(top,  rgba({$rgb['r']},{$rgb['g']},{$rgb['b']},0) 0%, rgba({$rgb['r']},{$rgb['g']},{$rgb['b']},0.01) 1%, rgba({$rgb['r']},{$rgb['g']},{$rgb['b']},1) 50%);\n\t\t\t\t\t\tbackground: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba({$rgb['r']},{$rgb['g']},{$rgb['b']},0)), color-stop(1%,rgba({$rgb['r']},{$rgb['g']},{$rgb['b']},0.01)), color-stop(50%,rgba({$rgb['r']},{$rgb['g']},{$rgb['b']},1)));\n\t\t\t\t\t\tbackground: -webkit-linear-gradient(top,  rgba({$rgb['r']},{$rgb['g']},{$rgb['b']},0) 0%,rgba({$rgb['r']},{$rgb['g']},{$rgb['b']},0.01) 1%,rgba({$rgb['r']},{$rgb['g']},{$rgb['b']},1) 50%);\n\t\t\t\t\t\tbackground: -o-linear-gradient(top,  rgba({$rgb['r']},{$rgb['g']},{$rgb['b']},0) 0%,rgba({$rgb['r']},{$rgb['g']},{$rgb['b']},0.01) 1%,rgba({$rgb['r']},{$rgb['g']},{$rgb['b']},1) 50%);\n\t\t\t\t\t\tbackground: -ms-linear-gradient(top,  rgba({$rgb['r']},{$rgb['g']},{$rgb['b']},0) 0%,rgba({$rgb['r']},{$rgb['g']},{$rgb['b']},0.01) 1%,rgba({$rgb['r']},{$rgb['g']},{$rgb['b']},1) 50%);\n\t\t\t\t\t\tbackground: linear-gradient(to bottom,  rgba({$rgb['r']},{$rgb['g']},{$rgb['b']},0) 0%,rgba({$rgb['r']},{$rgb['g']},{$rgb['b']},0.01) 1%,rgba({$rgb['r']},{$rgb['g']},{$rgb['b']},1) 50%);\n\t\t\t\t\t\tfilter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00{$post_hover_ie}', endColorstr='#{$post_hover_ie}',GradientType=0 );\n\t\t\t\t\t\t\"";
                }
                $output .= '></div></div>';
            }
            if (!$post_protected) {
                if ($post_audio) {
                    // If post have audio - show it
                    $output .= $post_audio;
                }
            }
            $output .= '</div>';
        } else {
            $title = '<' . $post_title_tag . ' class="sc_blogger_title sc_title entry-title' . ($style == 'accordion' ? ' sc_accordion_title' : '') . ($style == 'underline' ? ' sc_title_underline' : '') . (themerex_strpos($style, 'bubble') !== false ? ' sc_title_bubble sc_title_' . $style : '') . '">' . '<a href="' . ($style == 'accordion' ? '#' : $post_link) . '">' . (themerex_substr($style, 0, 6) == 'bubble' ? '<span class="sc_title_bubble_icon ' . ($post_icon != '' ? ' ' . $post_icon : '') . '"' . ($bubble_color != '' ? ' style="background-color:' . $bubble_color . '"' : '') . '></span>' : '') . ($style == 'accordion' ? '<span class="sc_accordion_icon"></span>' : '') . $post_title . ($style == 'accordion' ? '' : $reviewsBlock) . '</a>' . '</' . $post_title_tag . '>';
            if ($style == 'date') {
                $output .= '<div class="date_area">' . '<div class="date_month">' . prepareDateForTranslation(date('M', strtotime($post_date_sql))) . '</div>' . '<div class="date_day">' . date('d', strtotime($post_date)) . '</div>' . '</div>';
            } else {
                if (themerex_strpos($style, 'image') !== false) {
                    $output .= ($style == 'image_small' ? '<div class="title_area">' . $title . '</div>' : ($post_thumb ? '<div class="sc_blogger_image image_wrapper">' . ($post_link != '' ? '<a href="' . $post_link . '">' : '') . $post_thumb . ($post_link != '' ? '</a>' : '') . '</div>' : '')) . '<div class="post_wrapper">' . '<div class="post_info theme_info">' . __('Posted', 'themerex') . ' <span class="post_date theme_text">' . $post_date_diff . '</span> ' . '<span class="post_author">' . __('by', 'themerex') . ' <a href="' . $post_author_url . '" class="post_author">' . $post_author . '</a></span>' . '<br />' . ($post_categories_str != '' ? '<span class="post_cats">' . __('in', 'themerex') . ' ' . $post_categories_str . '</span>' : '') . ($counters == 'none' ? '' : '<span class="post_comments"><a href="' . $post_comments_link . '"><span class="comments_icon theme_info icon-' . ($orderby == 'comments' || $counters == 'comments' ? 'chat-1' : 'eye') . '"></span><span class="comments_number">' . ($orderby == 'comments' || $counters == 'comments' ? $post_comments : $post_views) . '</span></a></span>') . '</div>' . ($style == 'image_small' ? '' : '<div class="title_area">');
                }
            }
            $output .= $style == 'image_small' ? '' : $title;
            if (themerex_strpos($style, 'image') !== false) {
                $output .= $style == 'image_small' ? $post_thumb ? '<div class="sc_blogger_image image_wrapper">' . ($post_link != '' ? '<a href="' . $post_link . '">' : '') . $post_thumb . ($post_link != '' ? '</a>' : '') . '</div>' : '' : '</div>';
            }
            if ($descr > 0) {
                $output .= '<div class="sc_blogger_content' . ($style == 'accordion' ? ' sc_accordion_content' : '') . '">' . $post_excerpt . '</div>';
            }
            if (themerex_strpos($style, 'image') !== false) {
                $output .= '</div>';
            }
        }
        $output .= '</div>';
    }
    wp_reset_postdata();
    if ($style !== 'puzzles') {
        $output .= '</div>';
    }
    if ($style == 'accordion') {
        wp_enqueue_script('jquery-ui-accordion', false, array('jquery', 'jquery-ui-core'), null, true);
        $output .= '<script type="text/javascript">
				jQuery(document).ready(function() {
					jQuery(\'div' . ($id ? '#' . $id : '') . '.sc_blogger.sc_accordion\').accordion({
						header: "h3",
						collapsible: true,
						heightStyle: "content"
					});
				});
			</script>';
    }
    if ($border == 1) {
        $output .= '<script type="text/javascript">
				jQuery(document).ready(function() {
					var maxHeight = 0;
					for (var i=0; i<2; i++) {
						jQuery(\'.sc_blogger_item_bordered\').each(function(){
							if (i > 0) {
								if (maxHeight>0) jQuery(this).height(maxHeight);
							} else if (jQuery(this).height() > maxHeight)
								maxHeight = jQuery(this).height();
						});
					}
				});
			</script>';
    }
    return $output;
}
コード例 #3
0
                $src = getVideoPlayerURL(getPostVideo($post_video), $post_thumb != '');
                if ($src) {
                    $post_video = substituteVideo('<video src="' . $src . '">', $thumb_size[$blog_style]['w'], $thumb_size[$blog_style]['h']);
                }
            }
        } else {
            if ($post_format == 'audio') {
                $post_audio = getPostAudio($post_content_prepared, false);
                if ($post_audio == '') {
                    $src = getPostAudio($post_content_prepared, true);
                    if ($src) {
                        $post_audio = substituteAudio('<audio src="' . $src . '">');
                    }
                }
                if ($post_audio != '' && get_custom_option('substitute_audio') == 'yes') {
                    $src = getPostAudio($post_audio);
                    if ($src) {
                        $post_audio = substituteAudio('<audio src="' . $src . '">');
                    }
                }
            }
        }
    }
}
if ($post_format == 'image' && !$post_thumb) {
    if (($src = getPostImage($post_content_prepared)) != '') {
        $post_thumb = getResizedImageTag($src, $thumb_size[$blog_style]['w'], $thumb_size[$blog_style]['h']);
    }
} else {
    if ($post_format == 'link') {
        $post_url_data = getPostLink($post_content_prepared, false);
コード例 #4
0
 function getPostData(&$opt, $post_obj = null)
 {
     $opt = getPostDataOptions($opt);
     if (empty($opt['layout'])) {
         $opt['layout'] = !empty($opt['thumb_size']) ? $opt['thumb_size'] : 'excerpt';
     }
     global $post, $wp_query;
     $old_post = null;
     if (!empty($post) && is_object($post)) {
         $old_post = clone $post;
     }
     if ($post_obj != null) {
         $post = $post_obj;
         setup_postdata($post);
     }
     $cur_post = clone $post;
     $post_id = get_the_ID();
     $post_protected = post_password_required();
     $post_format = get_post_format();
     if (empty($post_format)) {
         $post_format = 'standard';
     }
     $post_icon = getPostFormatIcon($post_format);
     $post_type = get_post_type();
     $post_flags = array('sticky' => is_sticky());
     $post_link = get_permalink();
     $post_comments_link = get_comments_link();
     $post_date_sql = get_the_date('Y-m-d H:i:s');
     $post_date_stamp = get_the_date('U');
     $post_date = getDateOrDifference($post_date_sql);
     if (!empty($opt['date_format'])) {
         $parts = explode('+', $opt['date_format']);
         $post_date_part1 = empty($parts[0]) ? '' : date($parts[0], $post_date_stamp);
         $post_date_part2 = empty($parts[1]) ? '' : date($parts[1], $post_date_stamp);
         if ($post_date_part1 . $post_date_part2 != '') {
             $post_date = $post_date_part1 . ($post_date_part2 != '' ? ' ' . $post_date_part2 : '');
         }
         $post_date_part1 = get_the_date('j M');
     }
     $post_comments = $post_views = $post_likes = 0;
     if ($opt['counters'] != 'none') {
         $post_comments = get_comments_number();
         $post_views = getPostViews($post_id);
         $post_likes = getPostLikes($post_id);
     }
     $post_reviews_author = $post_reviews_users = 0;
     if ($opt['reviews']) {
         $post_reviews_author = '';
         $post_reviews_users = '';
     }
     $post_author = get_the_author();
     $post_author_id = get_the_author_meta('ID');
     $post_author_url = get_author_posts_url($post_author_id, '');
     // Is user can edit and/or delete this post?
     $allow_editor = get_theme_option("allow_editor") == 'yes';
     $post_edit_enable = $allow_editor && ($post_type == 'post' && current_user_can('edit_posts', $post_id) || $post_type == 'page' && current_user_can('edit_pages', $post_id));
     $post_delete_enable = $allow_editor && ($post_type == 'post' && current_user_can('delete_posts', $post_id) || $post_type == 'page' && current_user_can('delete_pages', $post_id));
     // Post content
     global $more;
     $old_more = $more;
     $more = -1;
     $post_content_original = trim(chop($post->post_content));
     $post_content_plain = trim(chop(get_the_content()));
     $more = $old_more;
     $post_content = trim(chop(get_the_content($opt['more_tag'], $opt['strip_teaser'])));
     // Substitute WP [gallery] shortcode
     $thumb_sizes = getThumbSizes(array('thumb_size' => $opt['thumb_size'], 'thumb_crop' => $opt['thumb_crop'], 'sidebar' => $opt['sidebar']));
     if ($opt['content']) {
         if ($opt['substitute_gallery']) {
             $post_content = substituteGallery($post_content, $post_id, $thumb_sizes['w'], $thumb_sizes['h_crop'], 'none', true);
         }
         $post_content = apply_filters('the_content', $post_content);
         if ($post_id != get_the_ID()) {
             // Fix bug in the WPML
             $post = $cur_post;
             setup_postdata($post);
         }
         if ($opt['substitute_video']) {
             $post_content = substituteVideo($post_content, $thumb_sizes['w'], $thumb_sizes['h_crop']);
         }
         if ($opt['substitute_audio']) {
             $post_content = substituteAudio($post_content);
         }
     }
     // Post excerpt
     $post_excerpt_original = $post->post_excerpt;
     $post_excerpt = has_excerpt() || $post_protected ? get_the_excerpt() : '';
     if (empty($post_excerpt)) {
         if (($more_pos = themerex_strpos($post_content_plain, '<span id="more-')) !== false) {
             $post_excerpt = themerex_substr($post_content_plain, 0, $more_pos);
         } else {
             $post_excerpt = in_array($post_format, array('quote', 'link')) ? $post_content : strip_shortcodes(strip_tags(get_the_excerpt()));
         }
     }
     if ($opt['substitute_gallery']) {
         $post_excerpt = substituteGallery($post_excerpt, $post_id, $thumb_sizes['w'], $thumb_sizes['h_crop']);
     }
     $post_excerpt = apply_filters('themerex_sc_clear_around', $post_excerpt);
     $post_excerpt = apply_filters('the_excerpt', $post_excerpt);
     $post_excerpt = apply_filters('themerex_p_clear_around', $post_excerpt);
     if ($post_id != get_the_ID()) {
         // Fix bug in the WPML
         $post = $cur_post;
         setup_postdata($post);
     }
     if ($opt['substitute_video']) {
         $post_excerpt = substituteVideo($post_excerpt, $thumb_sizes['w'], $thumb_sizes['h_crop']);
     }
     if ($opt['substitute_audio']) {
         $post_excerpt = substituteAudio($post_excerpt);
     }
     $post_excerpt = trim(chop(str_replace(array('[...]', '[&hellip;]'), array('', ''), $post_excerpt)));
     // Post Title
     $post_title = $post_title_plain = trim(chop(get_the_title()));
     $post_title = apply_filters('the_title', $post_title);
     if ($post_id != get_the_ID()) {
         // Fix bug in the WPML
         $post = $cur_post;
         setup_postdata($post);
     }
     // Prepare dedicated content
     $opt['dedicated'] = get_dedicated_content();
     //$opt['location']  = !empty($opt['location']) ? $opt['location'] : get_custom_option('dedicated_location');
     $opt['location'] = !empty($opt['location']) ? $opt['location'] : 'left';
     if (empty($opt['location']) || $opt['location'] == 'default') {
         $opt['location'] = get_custom_option('dedicated_location', '', $post_id);
     }
     if ($opt['location'] == 'alter' && !is_single() && (!is_page() || isset($wp_query->is_posts_page) && $wp_query->is_posts_page == 1)) {
         $loc = array('center', 'right', 'left');
         $opt['location'] = $loc[($opt['number'] - 1) % count($loc)];
     }
     if (!empty($opt['dedicated'])) {
         $class = getTagAttrib($opt['dedicated'], '<div class="sc_section>', 'class');
         if ($opt['location'] == 'default') {
             if (($pos = themerex_strpos($class, 'sc_align')) !== false) {
                 $pos += 8;
                 $pos2 = themerex_strpos($class, ' ', $pos);
                 $opt['location'] = $pos2 === false ? themerex_substr($class, $pos) : themerex_substr($class, $pos, $pos2 - $pos);
             }
             if ($opt['location'] == '' || $opt['location'] == 'default') {
                 $opt['location'] = 'center';
             }
         }
         if (!is_singular() || in_shortcode_blogger(true) || themerex_strpos($class, 'sc_align') !== false && themerex_strpos($class, 'columns') === false) {
             $class = str_replace(array('sc_alignright', 'sc_alignleft', 'sc_aligncenter'), array('', '', ''), $class) . ' sc_align' . $opt['location'];
             if ($opt['location'] == 'center' && themerex_strpos($class, 'columns2_3') === false && $opt['sidebar']) {
                 $class = str_replace('columns', '_columns', $class) . ' columns2_3';
             } else {
                 if (($opt['location'] == 'left' || $opt['location'] == 'right') && themerex_strpos($class, 'columns1_2') === false) {
                     // && $opt['sidebar'])
                     $class = str_replace('columns', '_columns', $class) . ' columns1_2';
                 }
             }
             $opt['dedicated'] = setTagAttrib($opt['dedicated'], '<div class="sc_section>', 'class', $class);
         }
     }
     //else if ($opt['location']=='' || $opt['location']=='default')
     //$opt['location'] = 'center';
     //if ($opt['location']=='default') $opt['location']='center';
     $opt['post_class'] = themerex_strtoproper($opt['location']);
     // Substitute <video> tags to <iframe> in dedicated content
     if ($opt['substitute_video']) {
         $opt['dedicated'] = substituteVideo($opt['dedicated'], $thumb_sizes['w'], $thumb_sizes['h_crop']);
     }
     // Substitute <audio> tags with src from soundcloud to <iframe>
     if ($opt['substitute_audio']) {
         $opt['dedicated'] = substituteAudio($opt['dedicated']);
     }
     // Extract gallery, video and audio from full post content
     $post_thumb = $post_attachment = $post_gallery = $post_video = $post_audio = $post_url = $post_url_target = '';
     if (themerex_substr($opt['layout'], 0, 6) == 'single') {
         $post_thumb = getResizedImageTag($post_id, $thumb_sizes['w'], $thumb_sizes['h'], null, false, false, true);
     } else {
         $post_thumb = getResizedImageTag($post_id, $thumb_sizes['w'], $post_type == 'product' && get_theme_option('crop_product_thumb') == 'no' ? null : $thumb_sizes['h']);
     }
     $post_attachment = wp_get_attachment_url(get_post_thumbnail_id($post_id));
     if ($post_format == 'gallery') {
         $post_gallery = buildGalleryTag(getPostGallery($post_content_plain, $post_id, max(2, get_custom_option('gallery_max_slides'))), $thumb_sizes['w'], $thumb_sizes['h_crop'], false, get_custom_option('substitute_slider_engine') != 'flex' ? '' : $post_link);
     } else {
         if ($post_format == 'video') {
             $post_video = getPostVideo($post_content_original, false);
             if ($post_video == '') {
                 $src = getVideoPlayerURL(getPostVideo($post_content_original, true), $post_thumb != '');
                 if ($src) {
                     $post_video = substituteVideo('<video src="' . $src . '">', $thumb_sizes['w'], round($thumb_sizes['w'] / 16 * 9), false);
                 }
                 //$thumb_sizes['h_crop']);
             }
             if ($post_video != '' && $opt['substitute_video']) {
                 $src = getVideoPlayerURL(getPostVideo($post_video), $post_thumb != '');
                 if ($src) {
                     $post_video = substituteVideo('<video src="' . $src . '">', $thumb_sizes['w'], round($thumb_sizes['w'] / 16 * 9), false);
                 }
                 //$thumb_sizes['h_crop']);
             }
         } else {
             if ($post_format == 'audio') {
                 $post_audio = getPostAudio($post_content_original, false);
                 if ($post_audio == '') {
                     $src = getPostAudio($post_content_original, true);
                     if ($src) {
                         $post_audio = substituteAudio('<audio src="' . $src . '"></audio>');
                     }
                 }
                 if ($post_audio != '' && $opt['substitute_audio'] == 'yes') {
                     $src = getPostAudio($post_audio);
                     $tag_t = getTagAttrib($post_audio, '[trx_audio]', 'title');
                     $tag_t = $tag_t == '' ? getTagAttrib($post_audio, '[audio]', 'title') : $tag_t;
                     $tag_at = getTagAttrib($post_audio, '[trx_audio]', 'author');
                     $tag_at = $tag_at == '' ? getTagAttrib($post_audio, '[audio]', 'author') : $tag_at;
                     if ($src) {
                         $post_audio = substituteAudio('<audio title="' . $tag_t . '" author="' . $tag_at . '" src="' . $src . '"></audio>');
                     }
                 }
             }
         }
     }
     if ($post_format == 'image' && !$post_thumb) {
         if (($src = getPostImage($post_content_original)) != '') {
             $post_thumb = getResizedImageTag($src, $thumb_sizes['w'], $thumb_sizes['h_crop']);
         }
     }
     if ($post_format == 'link') {
         $post_url_data = getPostLink($post_content_original, false);
         $post_link = $post_url = $post_url_data['url'];
         $post_url_target = $post_url_data['target'];
     }
     // Get all post's categories
     $post_categories_list = array();
     $post_categories_ids = array();
     $post_categories_slugs = array();
     $post_categories_links = '';
     $post_root_category = '';
     if ($opt['categories_list']) {
         $post_categories_list = getCategoriesByPostId($post_id);
         $ex_cats = explode(',', get_theme_option('exclude_cats'));
         for ($i = 0; $i < count($post_categories_list); $i++) {
             if (in_array($post_categories_list[$i]['term_id'], $ex_cats)) {
                 continue;
             }
             if ($post_root_category == '') {
                 if (get_theme_option('close_category') == 'parental') {
                     $parent_cat = getParentCategory($post_categories_list[$i]['term_id'], $opt['parent_cat_id']);
                     if ($parent_cat) {
                         $post_root_category = $parent_cat['name'];
                     }
                 } else {
                     $post_root_category = $post_categories_list[$i]['name'];
                 }
             }
             $post_categories_ids[] = $post_categories_list[$i]['term_id'];
             $post_categories_slugs[] = $post_categories_list[$i]['slug'];
             $post_categories_links .= '<a class="cat_link" href="' . $post_categories_list[$i]['link'] . '">' . $post_categories_list[$i]['name'] . ($i < count($post_categories_list) - 1 ? ',' : '') . '</a> ';
         }
         if ($post_root_category == '' && count($post_categories_list) > 0) {
             $post_root_category = $post_categories_list[0]['name'];
         }
     }
     // Get all post's tags
     $post_tags_list = array();
     $post_tags_ids = array();
     $post_tags_slugs = array();
     $post_tags_links = '';
     if ($opt['tags_list']) {
         if (($post_tags_list = get_the_tags()) != 0) {
             $tag_number = 0;
             foreach ($post_tags_list as $tag) {
                 $tag_number++;
                 $post_tags_links .= '<a class="tag_link" href="' . get_tag_link($tag->term_id) . '">' . $tag->name . ($tag_number == count($post_tags_list) ? '' : ',') . '</a> ';
                 $post_tags_ids[] = $tag->term_id;
                 $post_tags_slugs[] = $tag->slug;
             }
         } else {
             if (!is_array($post_tags_list)) {
                 $post_tags_list = array();
             }
         }
     }
     if ($old_post != null) {
         $post = $old_post;
         setup_postdata($post);
     }
     $post_data = compact('post_id', 'post_protected', 'post_type', 'post_format', 'post_flags', 'post_icon', 'post_link', 'post_comments_link', 'post_date_sql', 'post_date_stamp', 'post_date', 'post_date_part1', 'post_date_part2', 'post_comments', 'post_views', 'post_likes', 'post_reviews_author', 'post_reviews_users', 'post_author', 'post_author_id', 'post_author_url', 'post_title', 'post_title_plain', 'post_content_plain', 'post_content_original', 'post_content', 'post_excerpt_original', 'post_excerpt', 'post_thumb', 'post_attachment', 'post_gallery', 'post_video', 'post_audio', 'post_url', 'post_url_target', 'post_categories_list', 'post_categories_slugs', 'post_categories_ids', 'post_categories_links', 'post_root_category', 'post_tags_list', 'post_tags_ids', 'post_tags_slugs', 'post_tags_links', 'post_edit_enable', 'post_delete_enable');
     return apply_filters('themerex_get_post_data', $post_data, $opt, $post_obj);
 }