5ucms论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 12742|回复: 0
打印 上一主题 下一主题

[钩子/函数] add_theme_support() 函数 在当前使用的主题添加一些特殊的功能

[复制链接]

670

主题

785

帖子

8248

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8248
跳转到指定楼层
楼主
发表于 2021-5-30 15:41:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
add_theme_support() 函数用于在我们的当前使用的主题添加一些特殊的功能,函数一般写在主题的functions.php文件中。

语法结构

  1. <?php add_theme_support( $feature ); ?>
复制代码

参数
$feature
(string) (必须) 需要添加特殊功能名称,可以是以下参数:
‘post-thumbnails’ —– 增加缩略图支持
‘automatic-feed-links’ 自动输出RSS
‘post-formats’—– 增加文章格式功能
‘custom-background’—– 增加自定义背景
‘custom-header’—– 增加自定义顶部图像
‘menus’——自定义导航菜单


post-thumbnails(启用文章缩略图功能)

从WordPress2.9版本开始,可以给模板添加文章缩略图功能,操作方法很简单,只需要把下面的代码添加到functions.php里面。也可以使用wp_get_attachment_image_src()函数来实现前端添加缩略图功能。

  1. //后台增加特色图像功能
  2. add_theme_support('post-thumbnails');

  3. //然后在要显示缩略图的地方放置下面的代码即可。
  4. if(has_post_thumbnail()){
  5.     the_post_thumbnail();
  6. }

  7. //仅在post中使用缩略图功能
  8. add_theme_support( 'post-thumbnails', array( 'post' ) );

  9. //仅在page中使用缩略图功能
  10. add_theme_support( 'post-thumbnails', array( 'page' ) );

  11. //仅在 post 和 movies 中使用
  12. add_theme_support( 'post-thumbnails', array( 'post', 'movies' ) );
  13. post-formats添加支持文章格式

  14. add_theme_support( 'post-formats', array(
  15.     'aside',
  16.     'chat',
  17.     'gallery',
  18.     'image',
  19.     'link',
  20.     'quote',
  21.     'status',
  22.     'video',
  23.     'audio'
  24.     )
  25. );
复制代码

WordPress支持以下十个文章格式

Standard:只是一个普通的文章没有什么特别的东西
Aside:类似于一个facebook的更新
Chat:全文聊天
Image:只是一个简单的图像,没有什么巨大的
Link:链接到外部网站
Quote:引用
Status:一个简短的状态更新,类似于微博
Video:一个视频
Audio:音频文件


使用文章模板的方法
如果你只是想改变文章循环的不同的展现方式,只需要添加下面的代码到你的single.php中:

<?php get_template_part( 'content', get_post_format() ); ?>
现在,创建并且上传你的自定义格式循环文件到你正在使用的主题下,文件的命名应该为content-{post-format}.php,例如:content-video.php 和 content-audio.php

最后不要忘记添加一个content.php文件,因为这将作为刚才的自定义格式循环文件的默认文件,如果自定义文件不存在,则使用自定义single.php文件。

如果你是一个新手,不想去折腾那些烦人的循环,那么只需要创建一个自定义音频文章格式,我们将给他命名为:single-video.php。接下来,上传single-video.php到你的主题的根目录下面,并且添加如下代码片段到functions.php中

  1. add_action('template_include', 'load_single_template');
  2. function load_single_template($template) {
  3.     $new_template = '';
  4.     // 文章模板
  5.     if(is_single()){
  6.         global $post;
  7.         // 音频模板
  8.         if (has_post_format('video')){
  9.         // use template file single-video.php for video format
  10.         $new_template = locate_template(array('single-video.php'));
  11.         }
  12.     }
  13.     return ('' != $new_template) ? $new_template : $template;
  14. }
复制代码

现在,你就可以使用 single-video.php 这个文件作为你的文章形式了,在发布文章的时候选择它就OK了。总的来说,最后这方法比较简单,也比较容易懂。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|5ucms.com

GMT+8, 2024-5-7 13:32 , Processed in 1.843750 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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