设为首页 收藏本站
查看: 886|回复: 0

[经验分享] wordpress二次开发技巧-functions.php篇

[复制链接]

尚未签到

发表于 2017-4-1 13:05:04 | 显示全部楼层 |阅读模式
前言
  最近又写了个网站,也是基于wordpress,LEE周刊官网:www.leeweekly.com。这个网站和轩枫阁的部分功能有所不同,部分功能困扰了挺久,通过Google搜索到了各种解决方案,记录成文备忘。
  LEE周刊新版PC官网设计开发总结:http://t.cn/RyzrUD4

 

functions.php
  下面根据需求,对各种能实现进行简单介绍。
  先对functions.php文件进行介绍,通过代码实现各功能。

 

1. widgets sidebar 侧边栏小工具

DSC0000.png
wordpress二次开发技巧-functions.php篇


/** widgets sidebar 侧边栏小工具*/
if( function_exists('register_sidebar'<span class="crayon-sy">) ) {
register_sidebar(array(
'name' <span class="crayon-o">=> 'First_sidebar'<span class="crayon-sy">,
'before_widget' <span class="crayon-o">=> ''<span class="crayon-sy">,
'after_widget' <span class="crayon-o">=> ''<span class="crayon-sy">,
'before_title' <span class="crayon-o">=> '<h4>'<span class="crayon-sy">,
'after_title' <span class="crayon-o">=> '</h4>'
));
register_sidebar(array(
'name' <span class="crayon-o">=> 'Second_sidebar'<span class="crayon-sy">,
'before_widget' <span class="crayon-o">=> ''<span class="crayon-sy">,
'after_widget' <span class="crayon-o">=> ''<span class="crayon-sy">,
'before_title' <span class="crayon-o">=> '<h4>'<span class="crayon-sy">,
'after_title' <span class="crayon-o">=> '</h4>'
));
register_sidebar(array(
'name' <span class="crayon-o">=> 'Third_sidebar'<span class="crayon-sy">,
'before_widget' <span class="crayon-o">=> ''<span class="crayon-sy">,
'after_widget' <span class="crayon-o">=> ''<span class="crayon-sy">,
'before_title' <span class="crayon-o">=> '<h4>'<span class="crayon-sy">,
'after_title' <span class="crayon-o">=> '</h4>'
));
register_sidebar(array(
'name' <span class="crayon-o">=> 'Fourth_sidebar'<span class="crayon-sy">,
'before_widget' <span class="crayon-o">=> ''<span class="crayon-sy">,
'after_widget' <span class="crayon-o">=> ''<span class="crayon-sy">,
'before_title' <span class="crayon-o">=> '<h4>'<span class="crayon-sy">,
'after_title' <span class="crayon-o">=> '</h4>'
));
}
register_nav_menus(array("primary" => "Primary Navigation"));
 

2. 后台支持自定义菜单

DSC0001.png
wordpress二次开发技巧-functions.php篇


/*nav  后台自定义菜单*/
if(function_exists('register_nav_menus'<span class="crayon-sy">)){
register_nav_menus(
array(
'header-menu' <span class="crayon-o">=> __( '导航自定义菜单' <span class="crayon-sy">),
'footer-menu' <span class="crayon-o">=> __( '页角自定义菜单' <span class="crayon-sy">),
'sider-menu' <span class="crayon-o">=> __('侧边栏菜单'<span class="crayon-sy">),
'primary' <span class="crayon-o">=> __( 'Primary Navigation'<span class="crayon-sy">, 'lee' <span class="crayon-sy">),
)
);
}
  
  输出菜单,在如header.php插入显示菜单的代码

<?php wp_nav_menu( array( 'container' <span class="crayon-o">=> '' <span class="crayon-sy">) ); ?>




 

3. 面包屑导航
DSC0002.png


 
// 面包屑导航注册代码
function wheatv_breadcrumbs() {
$delimiter = '<i>></i>'<span class="crayon-sy">;
$name = '首页'<span class="crayon-sy">; //text for the 'Home' link
$currentBefore = ''<span class="crayon-sy">;
$currentAfter = ''<span class="crayon-sy">;
if ( !is_home() && !is_front_page() || is_paged() ) {
echo ''<span class="crayon-sy">;
global $post;
// $home = get_bloginfo('url');
$home = get_option('home'<span class="crayon-sy">);
echo '<a href="'<span class="crayon-sy">.$home.'" >'<span class="crayon-sy">. $name . ' </a>' <span class="crayon-sy">. $delimiter . ' '<span class="crayon-sy">;
if ( is_category() ) {
global $wp_query;
$cat_obj = $wp_query->get_queried_object();
$thisCat = $cat_obj->term_id;
$thisCat = get_category($thisCat);
$parentCat = get_category($thisCat->parent);
if ($thisCat->parent != 0) echo(get_category_parents($parentCat, TRUE, ' ' <span class="crayon-sy">. $delimiter . ' '<span class="crayon-sy">));
echo $currentBefore . ''<span class="crayon-sy">;
single_cat_title();
echo '' <span class="crayon-sy">. $currentAfter;
} elseif ( is_day() ) {
echo '' <span class="crayon-sy">. get_the_time('Y'<span class="crayon-sy">) . ' ' <span class="crayon-sy">. $delimiter . ' '<span class="crayon-sy">;
echo '' <span class="crayon-sy">. get_the_time('F'<span class="crayon-sy">) . ' ' <span class="crayon-sy">. $delimiter . ' '<span class="crayon-sy">;
echo $currentBefore . get_the_time('d'<span class="crayon-sy">) . $currentAfter;
} elseif ( is_month() ) {
echo '' <span class="crayon-sy">. get_the_time('Y'<span class="crayon-sy">) . ' ' <span class="crayon-sy">. $delimiter . ' '<span class="crayon-sy">;
echo $currentBefore . get_the_time('F'<span class="crayon-sy">) . $currentAfter;
} elseif ( is_year() ) {
echo $currentBefore . get_the_time('Y'<span class="crayon-sy">) . $currentAfter;
} elseif ( is_single() ) {
$cat = get_the_category(); $cat = $cat[0];
echo get_category_parents($cat, TRUE, ' ' <span class="crayon-sy">. $delimiter . ' '<span class="crayon-sy">);
echo $currentBefore;
the_title();
echo $currentAfter;
} elseif ( is_page() && !$post->post_parent ) {
echo $currentBefore;
the_title();
echo $currentAfter;
} elseif ( is_page() && $post->post_parent ) {
$parent_id = $post->post_parent;
$breadcrumbs = array();
while ($parent_id) {
$page = get_page($parent_id);
$breadcrumbs[] = '' <span class="crayon-sy">. get_the_title($page->ID) . ''<span class="crayon-sy">;
$parent_id = $page->post_parent;
}
$breadcrumbs = array_reverse($breadcrumbs);
foreach ($breadcrumbs as $crumb) echo $crumb . ' ' <span class="crayon-sy">. $delimiter . ' '<span class="crayon-sy">;
echo $currentBefore;
the_title();
echo $currentAfter;
} elseif ( is_search() ) {
echo $currentBefore . '搜索结果' <span class="crayon-sy">. get_search_query() . '' <span class="crayon-sy">. $currentAfter;
} elseif ( is_tag() ) {
echo $currentBefore . '搜索标签: '<span class="crayon-sy">;
single_tag_title();
echo '' <span class="crayon-sy">. $currentAfter;
} elseif ( is_author() ) {
global $author;
$userdata = get_userdata($author);
echo $currentBefore . 'Articles posted by ' <span class="crayon-sy">. $userdata->display_name . $currentAfter;
} elseif ( is_404() ) {
echo $currentBefore . 'Error 404' <span class="crayon-sy">. $currentAfter;
}
if ( get_query_var('paged'<span class="crayon-sy">) ) {
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' ('<span class="crayon-sy">;
echo __('第'<span class="crayon-sy">) . '' <span class="crayon-sy">. get_query_var('paged'<span class="crayon-sy">) . '页'<span class="crayon-sy">;
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')'<span class="crayon-sy">;
}
echo ''<span class="crayon-sy">;
}
}
 
  显示面包屑导航(category.php或single.php等)

<?php wheatv_breadcrumbs(); ?>
 

4.  文章访问量(点击数)

DSC0003.png
wordpress二次开发技巧-functions.php篇


//文章点击数
function getPostViews($postID){
$count_key = 'post_views_count'<span class="crayon-sy">;
$count = get_post_meta($postID, $count_key, true);
if($count==''<span class="crayon-sy">){
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0'<span class="crayon-sy">);
return "0";
}
return $count;
}
function setPostViews($postID) {
$count_key = 'post_views_count'<span class="crayon-sy">;
$count = get_post_meta($postID, $count_key, true);
if($count==''<span class="crayon-sy">){
$count = 0;
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0'<span class="crayon-sy">);
}else{
$count++;
update_post_meta($postID, $count_key, $count);
}
}
   显示点击量(如category.php或single.php)

<?php echo getPostViews(get_the_ID()); ?>
 

5. 文章中所有链接新窗口中打开

//为文章中所有链接添加target="_blank"属性
function autoblank($content) {
$content = preg_replace("/<a(.*?)>/", "<a$1 target="_blank">", $content);
return $content;
}
add_filter('the_content'<span class="crayon-sy">, 'autoblank'<span class="crayon-sy">);




 

6. 清除wp自带无用头部信息

//清除头部信息
//remove_action( 'wp_head', 'wp_enqueue_scripts', 1 );
remove_action( 'wp_head'<span class="crayon-sy">, 'feed_links'<span class="crayon-sy">, 2 );
remove_action( 'wp_head'<span class="crayon-sy">, 'feed_links_extra'<span class="crayon-sy">, 3 );
remove_action( 'wp_head'<span class="crayon-sy">, 'rsd_link' <span class="crayon-sy">);
remove_action( 'wp_head'<span class="crayon-sy">, 'wlwmanifest_link' <span class="crayon-sy">);
remove_action( 'wp_head'<span class="crayon-sy">, 'index_rel_link' <span class="crayon-sy">);
remove_action( 'wp_head'<span class="crayon-sy">, 'parent_post_rel_link'<span class="crayon-sy">, 10, 0 );
remove_action( 'wp_head'<span class="crayon-sy">, 'start_post_rel_link'<span class="crayon-sy">, 10, 0 );
remove_action( 'wp_head'<span class="crayon-sy">, 'adjacent_posts_rel_link_wp_head'<span class="crayon-sy">, 10, 0 );
//remove_action( 'wp_head', 'locale_stylesheet' );
remove_action( 'publish_future_post'<span class="crayon-sy">, 'check_and_publish_future_post'<span class="crayon-sy">, 10, 1 );
//remove_action( 'wp_head', 'noindex', 1 );
//remove_action( 'wp_head', 'wp_print_styles', 8 );
//remove_action( 'wp_head', 'wp_print_head_scripts', 9 );
remove_action( 'wp_head'<span class="crayon-sy">, 'wp_generator' <span class="crayon-sy">);
//remove_action( 'wp_head', 'rel_canonical' );
remove_action( 'wp_footer'<span class="crayon-sy">, 'wp_print_footer_scripts' <span class="crayon-sy">);
remove_action( 'wp_head'<span class="crayon-sy">, 'wp_shortlink_wp_head'<span class="crayon-sy">, 10, 0 );
remove_action( 'template_redirect'<span class="crayon-sy">, 'wp_shortlink_header'<span class="crayon-sy">, 11, 0 );
add_action('widgets_init'<span class="crayon-sy">, 'my_remove_recent_comments_style'<span class="crayon-sy">);
function my_remove_recent_comments_style() {
global $wp_widget_factory;
remove_action('wp_head'<span class="crayon-sy">, array($wp_widget_factory->widgets['WP_Widget_Recent_Comments'<span class="crayon-sy">], 'recent_comments_style'<span class="crayon-sy">));
}
 

7. 自动保存和文章修订功能

DSC0004.png
wordpress二次开发技巧-functions.php篇


//自动保存和文章修订功能
define('AUTOSAVE_INTERVAL'<span class="crayon-sy">, 120 );  // 设置自动保存间隔,单位是秒,默认60
define('WP_POST_REVISIONS'<span class="crayon-sy">, false); // 如果不禁用自动修订,最多允许保存的版本数,3表示最多保存3个修订版

 

8. 彩色静态标签云

DSC0005.png
wordpress二次开发技巧-functions.php篇




// 彩色静态标签云 Color Tag Cloud
function colorCloud($text) {
$text = preg_replace_callback('|<a (.+?)>|i'<span class="crayon-sy">, 'colorCloudCallback'<span class="crayon-sy">, $text);
return $text;
}
function colorCloudCallback($matches) {
$text = $matches[1];
$color = dechex(rand(0,16777215));
$pattern = '/style=('|")(.*)('|")/i'<span class="crayon-sy">;
$text = preg_replace($pattern, "style="color:#{$color};$2;"", $text);
return "<a $text>";
}
add_filter('wp_tag_cloud'<span class="crayon-sy">, 'colorCloud'<span class="crayon-sy">, 1);
  
  输出标签

<?php wp_tag_cloud('smallest=10&largest=14&number=32&order=RAND'<span class="crayon-sy">) ?>


 

9. 搜索结果关键词高亮显示
  具体实现,再另写文章介绍,后续可通过搜索找到。

DSC0006.png
wordpress二次开发技巧-functions.php篇




// 搜索结果关键词高亮显示
function lee_set_query() {
$query  = attribute_escape(get_search_query());
if(strlen($query) > 0){
echo '
<script type="text/javascript">
var lee_query  = "'.$query.'";
</script>
'<span class="crayon-sy">;
}
}
function lee_init_jquery() {
wp_enqueue_script('jquery'<span class="crayon-sy">);
}
add_action('init'<span class="crayon-sy">, 'lee_init_jquery'<span class="crayon-sy">);
add_action('wp_print_scripts'<span class="crayon-sy">, 'lee_set_query'<span class="crayon-sy">);
 

10. 自定义登录界面
  在不更改html的情况下,可通过引入样式文件,自定义登录界面。

DSC0007.png
wordpress二次开发技巧-functions.php篇


// 自定义登录界面
function custom_login(){
echo '<link rel="stylesheet" type="text/css" href="' <span class="crayon-sy">. get_bloginfo('template_directory'<span class="crayon-sy">) . '/css/login.css" />'<span class="crayon-sy">;
}
add_action('login_head'<span class="crayon-sy">, 'custom_login'<span class="crayon-sy">);
function login_headerurl($url) {
return get_bloginfo('url'<span class="crayon-sy">);
}
add_filter('login_headerurl'<span class="crayon-sy">, 'login_headerurl'<span class="crayon-sy">);
function login_headertitle($title){
return __('轩枫阁'<span class="crayon-sy">);
}
add_filter('login_headertitle'<span class="crayon-sy">, 'login_headertitle'<span class="crayon-sy">);


 

11. 获得当前文章的位置

DSC0008.png
wordpress二次开发技巧-functions.php篇


DSC0009.png
wordpress二次开发技巧-functions.php篇


// 当前文章
function num_Pcurrent_post() {
global $wpdb;
$postid = get_the_ID();//获取当前文章的ID
$getpost = get_post($postid);
$daysago = $getpost->post_date;//获取当前文章的发布时间
$today = gmdate('Y-m-d H:i:s'<span class="crayon-sy">, time() + 3600 * 8);//获取当前服务器的时间
$count_posts = wp_count_posts();
$num_all_posts = $count_posts->publish;//总的文章数量
$result = $wpdb->get_results("SELECT ID FROM $wpdb->posts WHERE post_date BETWEEN '$daysago' AND '$today' AND post_status='publish' AND post_type='post' ORDER BY post_date DESC ");
foreach ($result as $Item) {
$post_ID[] = $Item->ID;
}
$num_current_post = count($post_ID)-1;//当前文章发布以前的文章数量总数
$output .= $num_current_post.'/'<span class="crayon-sy">.$num_all_posts;
echo $output;
}
function num_Ncurrent_post() {
global $wpdb;
$postid = get_the_ID();//获取当前文章的ID
$getpost = get_post($postid);
$daysago = $getpost->post_date;//获取当前文章的发布时间
$today = gmdate('Y-m-d H:i:s'<span class="crayon-sy">, time() + 3600 * 8);//获取当前服务器的时间
$count_posts = wp_count_posts();
$num_all_posts = $count_posts->publish;//总的文章数量
$result = $wpdb->get_results("SELECT ID FROM $wpdb->posts WHERE post_date BETWEEN '$daysago' AND '$today' AND post_status='publish' AND post_type='post' ORDER BY post_date DESC ");
foreach ($result as $Item) {
$post_ID[] = $Item->ID;
}
$num_current_post = count($post_ID)+1;//当前文章发布以前的文章数量总数
$output .= $num_current_post.'/'<span class="crayon-sy">.$num_all_posts;
echo $output;
}
   显示上下篇及位置,在single.php

<?php if (get_next_post()) { echo  next_post_link('%link'<span class="crayon-sy">,__( '<span title="上一篇:%title">上一篇</span>'<span class="crayon-sy">, 'lee' <span class="crayon-sy">),$in_same_cat = false,$excluded_categories = '11'<span class="crayon-sy">);  } else { echo '<a class="arc_nav_new">已最新</a>'<span class="crayon-sy">;  }?>
<?php num_Pcurrent_post(); ?>
<?php num_Ncurrent_post(); ?>
<?php if (get_previous_post()) { echo  previous_post_link('%link'<span class="crayon-sy">,__( '<span title="下一篇:%title">下一篇</span>'<span class="crayon-sy">, 'lee' <span class="crayon-sy">),$in_same_cat = false,$excluded_categories = '11'<span class="crayon-sy">);  } else { echo '<a class="arc_nav_new">已最后</a>'<span class="crayon-sy">;  }?>
 

12. 热门标签ajax加载
  点击换一换

DSC00010.png
wordpress二次开发技巧-functions.php篇


// 热门标签ajax部分
function tagLoad(){
if( isset($_GET['action'<span class="crayon-sy">])){
if($_GET['action'<span class="crayon-sy">] == 'tag'<span class="crayon-h">  ){
echo wp_tag_cloud('smallest=10&largest=14&number=32&order=RAND'<span class="crayon-sy">);
die;
}
}
}
add_action('init'<span class="crayon-sy">, 'tagLoad'<span class="crayon-sy">);
   HTML部分

<a class="tag_change" href="<?php echo get_option('home'<span class="crayon-sy">)."/?action=tag"; ?>">换一换</a>
   使用JS实现点击交互

// 标签云ajax
$(".tag_change").click(function(){
$.ajax({
url: $(this).attr("href"),
type: 'get'<span class="crayon-sy">,
beforeSend: function() {
// 可以显示loading
},
error: function(error) {
// 错误处理
},
success: function(data) {
// 成功返回数据,先清空初始标签,装载新数据淡入
$(".tag_content").empty().append($(data).fadeIn(200));
}
});
return false;
});

 

13. 外链加上nofollow
  防止引入的网站有问题,被降权

// 文章外部链接加上nofollow
add_filter( 'the_content', 'cn_nf_url_parse');
function cn_nf_url_parse( $content ) {
$regexp = "<as[^>]*href=("??)([^" >]*?)1[^>]*>";
if(preg_match_all("/$regexp/siU", $content, $matches, PREG_SET_ORDER)) {
if( !empty($matches) ) {
$srcUrl = get_option('siteurl');
for ($i=0; $i < count($matches); $i++)
{
$tag = $matches[$i][0];
$tag2 = $matches[$i][0];
$url = $matches[$i][0];
$noFollow = '';
$pattern = '/targets*=s*"s*_blanks*"/';
preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE);
if( count($match) < 1 )
$noFollow .= ' target="_blank" ';
$pattern = '/rels*=s*"s*[n|d]ofollows*"/';
preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE);
if( count($match) < 1 )
$noFollow .= ' rel="nofollow" ';
$pos = strpos($url,$srcUrl);
if ($pos === false) {
$tag = rtrim ($tag,'>');
$tag .= $noFollow.'>';
$content = str_replace($tag2,$tag,$content);
}
}
}
}
$content = str_replace(']]>', ']]>', $content);
return $content;
}

 

14. 图片懒加载lazyload3. 外链加上nofollow

function lazyload($content) {
if(!is_feed()||!is_robots) {
$content=preg_replace('/<img(.+)src=['"]([^'"]+)['"](.*)>/i',"<img$1data-original="$2" src="data:image/gif;base64,R0lGODlhAQABAIAAAOHh4QAAACH5BAAAAAAALAAAAAABAAEAQAICRAEAOw=="$3>n",$content);
}
return $content;
}
add_filter ('the_content', 'lazyload');
   JS代码(需引入jquery.lazyload.js)

// lazyload
$("img").lazyload({
effect : "fadeIn",
threshold : 100,
});

 

15. 获取文章中第一张图
  如跑马灯图

DSC00011.png
wordpress二次开发技巧-functions.php篇


 

// 获取文章中第一张图
function wpdx_postimage($atts, $content = null) {
extract(shortcode_atts(array(
"size" => 'full',
"float" => 'none'
), $atts));
$images =& get_children( 'post_type=attachment&post_mime_type=image&post_parent=' . get_the_id() );
foreach( $images as $imageID => $imagePost )
$fullimage = wp_get_attachment_image($imageID, $size, false);
$imagedata = wp_get_attachment_image_src($imageID, $size, false);
$width = ($imagedata[1]+2);
$height = ($imagedata[2]+2);
return $fullimage;
}
add_shortcode("postimage", "wpdx_postimage");
 显示图片

<a href="<?php the_permalink(); ?>" target="_blank">
<?php echo do_shortcode("[postimage]"); ?>
</a>

 

16. 截取摘要

DSC00012.png
wordpress二次开发技巧-functions.php篇


// 摘要字数限制
function new_excerpt_length($length) {
return 100;
}
add_filter('excerpt_length', 'new_excerpt_length');
// 摘要...
function new_excerpt_more( $more ) {
return '...';
}
add_filter('excerpt_more', 'new_excerpt_more');


 

17. 获取文章第一个分类目录
  因为一篇文章可能属于多个目录,有些地方只需要输出一个

// 获取文章第一个分类目录
function get_first_category(){
$category = get_the_category();
if($category[0]){
echo '<a class="col_cat" href="'.get_category_link($category[0]->term_id ).'">'.$category[0]->cat_name.'</a>';
}
}
add_filter('get_first_category', 'get_first_category');
   HTML

<?php get_first_category(); ?>




 

18. 分类页获得文章简介

DSC00013.png
wordpress二次开发技巧-functions.php篇




// 获得category简介
function get_category_expert($length=240){
$content = get_the_content();
$trimmed_content = wp_trim_words( $content, $length, '<a href="'. get_permalink() .'"> [...]</a>' );
echo $trimmed_content;
}
add_filter('get_category_expert', 'get_category_expert');
 

19. 根据页面类型指定每页显示的文章数



// 根据页面类型指定每页显示的文章数
function custom_posts_per_page($query){
if(is_home()){
$query->set('posts_per_page',9);//首页每页显示8篇文章
}
if(is_search()){
$query->set('posts_per_page',5);//搜索页显示所有匹配的文章,不分页
}
if(is_archive()){
$query->set('posts_per_page',-1);//archive每页显示25篇文章
}
if(is_tag()){
$query->set('posts_per_page',4);//archive每页显示25篇文章
}
if(is_category()){
$query->set('posts_per_page',9);//archive每页显示25篇文章
}
if(is_category(11)){
$query->set('posts_per_page',-1);//archive每页显示25篇文章
}
}//function
//this adds the function above to the 'pre_get_posts' action
add_action('pre_get_posts','custom_posts_per_page');
 

20. 缩略图

//添加特色缩略图支持
if ( function_exists('add_theme_support') )add_theme_support('post-thumbnails');
/*
* 缩略图
*/
function dm_the_thumbnail() {
global $post;
// 判断该文章是否设置的缩略图,如果有则直接显示
if ( has_post_thumbnail() ) {
echo '<a class="at_feature" href="'.get_permalink().'" title="阅读全文">';
the_post_thumbnail('thumbnail');
echo '</a>';
} else { //如果文章没有设置缩略图,则查找文章内是否包含图片
$content = $post->post_content;
preg_match_all('/<img.*?(?: |t|r|n)?src=['"]?(.+?)['"]?(?:(?: |t|r|n)+.*?)?>/sim', $content, $strResult, PREG_PATTERN_ORDER);
$n = count($strResult[1]);
if($n > 0){ // 如果文章内包含有图片,就用第一张图片做为缩略图
// 为了得到第一张图片的215x115尺寸,得用正则替换格式
$thumb_first = $strResult[1][0];
$thumb_split = strrpos($thumb_first, '.');
$thumb_before = substr($thumb_first, 0, $thumb_split);
$thumb_after = substr($thumb_first, $thumb_split, strlen($thumb_first));
$reg = "/-d*xd*/im";
$thumb_before = preg_replace($reg, "", $thumb_before);
$thumb_src = $thumb_before.'-215x115'.$thumb_after;
echo '<a class="at_feature" href="'.get_permalink().'" title="阅读全文"><img class="animated" src="'.$thumb_src.'" alt="缩略图" /></a>';
}else { // 如果文章内没有图片,则用默认的图片。
$random= mt_rand(0, 19);
echo '<a class="at_feature" href="'.get_permalink().'" title="阅读全文"><img class="animated" src="'.get_bloginfo('template_url').'/images/thumbnail/default_thumbnail_'.$random.'.jpg" alt="缩略图" /></a>';
}
}
}
 

显示缩略图

// 第一种
<?php if (has_post_thumbnail()){ the_post_thumbnail();} ?>

// 第二种
<?php dm_the_thumbnail(); ?>


  转自:wordpress二次开发技巧-functions.php篇

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-358761-1-1.html 上篇帖子: PHP字符串与数组常用函数 下篇帖子: PHP内核探索:zend_parse_parameters函数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表