zoukankan      html  css  js  c++  java
  • Wordpress调用文章第一张图片

    之前设计WordPress主题的时候调用图片一般都是用文章内附件图片,但是有些博主为了节约博客主机空间,大部分采用外联图片,这样就无法同过这种方式调用了,所以只能用下面的这种方式来调用文章的第一张图片,WordPress调用文章第一张图片代码如下:

    1 在WordPress主题的功能函数function.php文件内添加以下代码,这些 代码主要是查找文章内有没有图片并调用第一张图片地址,其工作原理是查找文章内有没<img />这个标签,如果有就调出第一张图片,如果没有就用张设计好的图片代替,这个方式用来作为文章缩略图非常有用,具体代码如下,拷贝到 function.php <?php … ?>之间即可.

    ----------------------------------------------------------------------------------------------------------------

    function catch_that_image() {
    
          global $post, $posts;
    
          $first_img = '';
    
          ob_start();
    
          ob_end_clean();
    
          $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
    
          $first_img = $matches [1] [0];
    
          if(empty($first_img)){ //Defines a default image
    
            $first_img = "/images/default.jpg";
    
          }
    
          return $first_img;
    
        }

    ----------------------------------------------------------------------------------------------------------------

    Wordpress 主题模板调用 catch_that_image()函数,方法很简单,在需要的地方插入 <img src="<?php echo catch_that_image() ?>" alt="<?php printf( esc_attr__( 'Permalink to %s', 'catchbox' ), the_title_attribute( 'echo=0' ) ); ?> www.banysky.net 帮你资源网" />即可,例如我是在首页插入,我修改了Content.php

    全文如下:

    <?php 
    /** 
    * The default template for displaying content 
    * 
    * @package Catch Themes 
    * @subpackage Catch_Box 
    * @since Catch Box 1.0 
    */ 
    ?>
    
        <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> 
            <header class="entry-header"> 
                <?php if ( is_sticky() ) : ?> 
                    <hgroup> 
                        <h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'catchbox' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2> 
                        <h3 class="entry-format"><?php _e( 'Featured', 'catchbox' ); ?></h3> 
                    </hgroup> 
                <?php else : ?> 
                <h1 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'catchbox' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h1> 
                <?php endif; ?>
    
                <?php if ( 'post' == get_post_type() ) : ?> 
                    <div class="entry-meta"> 
                        <?php catchbox_posted_on(); ?> 
                        <?php if ( comments_open() && ! post_password_required() ) : ?> 
                            <span class="sep"> &mdash; </span> 
                            <span class="comments-link"> 
                                 <?php comments_popup_link(__('No Comments &darr;', 'catchbox'), __('1 Comment &darr;', 'catchbox'), __('% Comments &darr;', 'catchbox')); ?> 
                            </span> 
                        <?php endif; ?> 
                    </div><!-- .entry-meta --> 
                <?php endif; ?> 
            </header><!-- .entry-header --> 
                
             <?php 
                 $options = catchbox_get_theme_options(); 
                $current_content_layout = $options['content_layout']; 
                ?> 
            <?php if ( is_search() ) : // Only display Excerpts for Search ?> 
                <div class="entry-summary"> 
                    <?php the_excerpt(); ?> 
                </div><!-- .entry-summary --> 
            <?php elseif ($current_content_layout=='excerpt'  ) : // Only display Featured Image and Excerpts if checked in Theme Option ?> 
                <div class="entry-summary"> 
                    <?php if( has_post_thumbnail() ):?> 
                           <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'catchbox' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"> 
                            <?php the_post_thumbnail('featured-slider'); ?> 
                           </a> 
                    <?php endif; ?> 
                   <img src="<?php echo catch_that_image() ?>" alt="<?php printf( esc_attr__( 'Permalink to %s', 'catchbox' ), the_title_attribute( 'echo=0' ) ); ?> www.banysky.net 帮你资源网" /> <?php the_excerpt(); ?> 
                </div><!-- .entry-summary --> 
            <?php else : ?> 
            <div class="entry-content"> 
                <?php the_content( __( 'Continue reading <span class="meta-nav">&rarr;</span>', 'catchbox' ) ); ?> 
                <?php wp_link_pages( array( 
                    'before'        => '<div class="page-link"><span class="pages">' . __( 'Pages:', 'catchbox' ) . '</span>', 
                    'after'            => '</div>', 
                    'link_before'     => '<span>', 
                    'link_after'       => '</span>', 
                ) ); 
                ?> 
            </div><!-- .entry-content --> 
            <?php endif; ?>
    
            <footer class="entry-meta"> 
                <?php $show_sep = false; ?> 
                <?php if ( 'post' == get_post_type() ) : // Hide category and tag text for pages on Search ?> 
                <?php 
                    /* translators: used between list items, there is a space after the comma */ 
                    $categories_list = get_the_category_list( __( ', ', 'catchbox' ) ); 
                    if ( $categories_list ): 
                ?> 
                <span class="cat-links"> 
                    <?php printf( __( '<span class="%1$s">Posted in</span> %2$s', 'catchbox' ), 'entry-utility-prep entry-utility-prep-cat-links', $categories_list ); 
                    $show_sep = true; ?> 
                </span> 
                <?php endif; // End if categories ?> 
                <?php 
                    /* translators: used between list items, there is a space after the comma */ 
                    $tags_list = get_the_tag_list( '', __( ', ', 'catchbox' ) ); 
                    if ( $tags_list ): 
                    if ( $show_sep ) : ?> 
                <span class="sep"> | </span> 
                    <?php endif; // End if $show_sep ?> 
                <span class="tag-links"> 
                    <?php printf( __( '<span class="%1$s">Tagged</span> %2$s', 'catchbox' ), 'entry-utility-prep entry-utility-prep-tag-links', $tags_list ); 
                    $show_sep = true; ?> 
                </span> 
                <?php endif; // End if $tags_list ?> 
                <?php endif; // End if 'post' == get_post_type() ?>
    
                <?php if ( comments_open() ) : ?> 
                <?php if ( $show_sep ) : ?> 
                <span class="sep"> | </span> 
                <?php endif; // End if $show_sep ?> 
                <span class="comments-link"><?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a reply', 'catchbox' ) . '</span>', __( '<b>1</b> Reply', 'catchbox' ), __( '<b>%</b> Replies', 'catchbox' ) ); ?></span> 
                <?php endif; // End if comments_open() ?>
    
                <?php edit_post_link( __( 'Edit', 'catchbox' ), '<span class="edit-link">', '</span>' ); ?> 
            </footer><!-- #entry-meta --> 
        </article><!-- #post-<?php the_ID(); ?> --> 

    想要更好的显示效果就需要修改css样式来美化你的WordPress主题模板了。

    声明:调用文章第一张图片如果是外联图片就无法支持timthumb图片剪切功能,如果你是WordPress主题设计高手,建议用phpthumb,phpthumb是可以支持外联图片的,大家不放试试,good luck!

  • 相关阅读:
    allocator类
    智能指针shared_ptr
    字面值常量类
    转换构造函数
    委托构造函数
    访问说明符&封装
    const成员函数
    函数指针
    constexper和常量表达式
    函数返回数组指针
  • 原文地址:https://www.cnblogs.com/Bany/p/2783865.html
Copyright © 2011-2022 走看看