Içerikten görüntüyü Özü

1 Cevap php

I the_content () görüntüleri ayıklamak istediğiniz ve index.php üzerine yazılan birinci görüntüleri ve single.php üzerindeki tüm görüntüleri görüntülemek istediğiniz istiyorum. Bunun için ben the_content üzerinde bir filtre uygulamak ():

<?php
/*****************************************************************************
    Post Summary Filter - Grap Image Thumbnails, Strip Tags, etc
******************************************************************************/
add_filter('the_content', 'filterContentSummary', 0);

function filterContentSummary($content){
    global $post;

    if( is_home() || is_category() || is_tag() || is_author() || is_date() || is_search() || is_single ){
        //if NOT single page or "page" page
            $img='';        //default img code
            $final_width = 300;

            $content = $post->post_content;

            //search for first image in article
            preg_match('/<img[^>]*>/i',$content,$matches);

            //image found, process it
            if($matches){
                preg_match('/src="[^"]*"/i',$matches[0],$src);
                preg_match('/width="(\d*)[^"]*"/i',$matches[0],$width);

                if($width[1] < $final_width){
                    $final_width = $width[1];
                }


            }

            //prepare text
            if(!empty($post->post_excerpt)){
                $content = $post->post_excerpt;
            }else{
                //strip shortcodes, tags
                $content = preg_replace('/\[\/*[^\]]*\]/i', '', $content);  //cont is ready
                $content = preg_replace('/<[^>]*>/i', '', $content);    //cont is ready
                $content = substr($content,0,500);
                $content = explode(". ", $content);

                array_pop($content);
                $content = implode(". ", $content) . "";
            }

            if($content=="."){
                $content = $post->post_content;
            }
            //prepare final content
            $content =  "<p>". $content ."</p>";

            //Adding Read more link
            $content .= "<p align='right' class='seemore'><a href=".  get_permalink() . "></a></p>";
    }
    // Make sure to return the content
    return $content;
}
?>

Düzenli ifadeler kullanarak index.php ben görevinden ilk görüntüyü bulmak ve görüntülemek:

<?php while (have_posts()) : the_post();
                            $content = $post->post_content;
                            preg_match_all('/(<img.*src="(.*)"[^>]*>)/iU',$content,$matches);
                        ?>

Şimdi $matches tüm görüntüleri var:

<div class="content-img"><img src="<?php echo $matches[2][0];?>"/></div>

... Bir yazı üzerine ilk görüntüyü görüntülemek için kullanılır.

Ama nasıl single.php tüm görüntüleri görüntüleyebilirsiniz?

1 Cevap

normal görüntülemek sonra ... tüm görüntüleri ile orijinal içeriği dönecektir filtre tek şablon ise sonra global $post sadece if(is_single()) return $content; bu şekilde ekleyin.