WordPress主题函数(2)

导航菜单

自定义导航菜单允许用户在“菜单”管理面板中编辑和自定义菜单,为用户提供了一个拖放界面来编辑其主题中
的各种菜单。
您可以在functions.php中设置多个菜单。 可以使用register_nav_menus()添加它们,并使用wp_nav_menu()插
入主题,如本手册后面所述。 如果您的主题将允许多个菜单,则应使用数组。 虽然某些主题将不具有自定义导
航菜单,但建议您允许此功能轻松进行自定义。

register_nav_menus( array(
    'primary' => __( 'Primary Menu', 'myfirsttheme' ),
    'secondary' => __( 'Secondary Menu', 'myfirsttheme' )
) );

您可以稍后使用wp_nav_menu()并使用分配的名称(即主)将其定义的每个菜单作为theme_location参数。

加载文本域 

通过使您的主题中的字符串可用于翻译,主题可以翻译成多种语言。 为此,您必须使用
load_theme_textdomain()。 有关使您的主题可用于翻译的更多信息,请阅读国际化部分。

load_theme_textdomain( 'myfirsttheme', get_template_directory() . '/languages' )
;

发布缩略图

发布缩略图和精选图片可让您的用户选择一个图片来表示他们的帖子。 您的主题可以根据其设计决定如何显示它
们。 例如,您可以选择在归档视图中显示每个帖子的帖子缩略图。 或者,您可能希望在主页上使用大型特色图
片。 虽然不是每个主题都需要特色图片,但建议您支持发布缩略图和精选图片。

add_theme_support( 'post-thumbnails' );

发布格式

发布格式允许用户以不同的方式格式化其帖子。 这对于允许博主根据帖子的内容选择不同的格式和模板非常有
用。 add_theme_support()也用于Post格式。 这是推荐的。

add_theme_support( 'post-formats', array ( 'aside', 'gallery', 'quote', 'image'
, 'video' ) );

初始设置示例

包括所有上述功能将给你一个如下所示的functions.php文件。 添加了代码注释以便将来的清晰度。
如本示例底部所示,您必须添加所需的add_action()语句以确保myfirsttheme_setup函数已加载。 

if ( ! function_exists( 'myfirsttheme_setup' ) ) :
/**
    * Sets up theme defaults and registers support for various WordPress features.
    *
    * Note that this function is hooked into the after_setup_theme hook, which run
s
    * before the init hook. The init hook is too late for some features, such as i
ndicating
    * support post thumbnails.
    */
function myfirsttheme_setup() {
        /**
        * Make theme available for translation.
        * Translations can be placed in the /languages/ directory.
        */
        load_theme_textdomain( 'myfirsttheme', get_template_directory() . '/languag
es' );
        /**
        * Add default posts and comments RSS feed links to <head>.
        */
        add_theme_support( 'automatic-feed-links' );
        /**
        * Enable support for post thumbnails and featured images.
        */
        add_theme_support( 'post-thumbnails' );
        /**
        * Add support for two custom navigation menus.
        */
        register_nav_menus( array(
            'primary' => __( 'Primary Menu', 'myfirsttheme' ),
            'secondary' => __('Secondary Menu', 'myfirsttheme' )
        ) );
        /**
        * Enable support for the following post formats:
        * aside, gallery, quote, image, and video
        */
        add_theme_support( 'post-formats', array ( 'aside', 'gallery', 'quote', 'image', 'video' ) );
        }
        endif; // myfirsttheme_setup
        add_action( 'after_setup_theme', 'myfirsttheme_setup' );

内容宽度

内容宽度添加到您的functions.php文件中,以确保没有内容或资源破坏站点的容器。 内容宽度为添加到您的网
站的任何内容(包括已上传的图像)设置允许的最大宽度。 在下面的示例中,内容区域的最大宽度为800像素。
没有内容会比这更大。 

if ( ! isset ( $content_width) )
    $content_width = 800;

其他特性

还有其他常见功能可以在functions.php中包含。 下面列出了一些最常见的功能。 点击并了解有关这些功能的更
多信息。

  • 自定义Headers
  • Sidebars(Widgets)
  • 自定义背景
  • 添加编辑器样式
  • HTML5
  • 标题标签

你的functions.php文件 

如果您选择包括上面列出的所有功能,这是您的functions.php可能是什么样子。 已经参考上面的评论。

/**
* MyFirstTheme's functions and definitions
*
* @package MyFirstTheme
* @since MyFirstTheme 1.0
*/

/**
 * First, let's set the maximum content width based on the theme's design and s
tylesheet.
 * This will limit the width of all uploaded images and embeds.
 */
if ( ! isset( $content_width ) )
    $content_width = 800; /* pixels */
if ( ! function_exists( 'myfirsttheme_setup' ) ) :
/**
 * Sets up theme defaults and registers support for various WordPress features.
 *
 * Note that this function is hooked into the after_setup_theme hook, which run
s
 * before the init hook. The init hook is too late for some features, such as i
ndicating
 * support post thumbnails.
 */
function myfirsttheme_setup() {
    /**
     * Make theme available for translation.
     * Translations can be placed in the /languages/ directory.
     */
load_theme_textdomain( 'myfirsttheme', get_template_directory() . '/languag
es' );
    /**
     * Add default posts and comments RSS feed links to <head>.
     */
add_theme_support( 'automatic-feed-links' );
    /**
     * Enable support for post thumbnails and featured images.
     */
add_theme_support( 'post-thumbnails' );
    /**
     * Add support for two custom navigation menus.
     */
register_nav_menus( array(
'primary' => __( 'Primary Menu', 'myfirsttheme' ),
'secondary' => __('Secondary Menu', 'myfirsttheme' )
) );
    /** 
     * Enable support for the following post formats:
     * aside, gallery, quote, image, and video
     */
add_theme_support( 'post-formats', array ( 'aside', 'gallery', 'quote', 'im
age', 'video' ) );
}
endif; // myfirsttheme_setup
add_action( 'after_setup_theme', 'myfirsttheme_setup' );

 

 

WordPress 专栏Wordpress主题开发专栏汇总主题基础

WordPress 循环函数(1)

2022-10-15 18:41:49

WordPress 专栏Wordpress主题开发专栏汇总主题基础

Wordpress主题函数(1)

2022-10-21 14:28:58

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索