WordPress教程

WordPress函数 after_setup_theme函数详解

ldwpw · 8月5日 · 2020年 · 61次已读

函数功能

after_setup_theme钩子在主题被初始化之后在每个页面加载期间被调用。通常用于执行主题的基本设置,注册和初始化操作。

语法

<?php add_action( 'after_setup_theme', 'function_name' ); ?>

其中“function_name”是要调用的函数的名称。

常用实例

/ **当'after_setup_theme'钩子运行时,让WordPress运行viti_setup()。* /
add_action('after_setup_theme','viti_setup');

/ **
*设置主题默认值并打开WordPress各种自带功能。
*
* functions.php文件中。
*
* @uses add_theme_support()添加对帖子缩略图等功能的支持。
* @uses register_nav_menus()添加对导航菜单的支持。
* @uses add_custom_background()添加对自定义背景的支持。
* @uses add_editor_style()设置可视化编辑器的样式。
* @uses load_theme_textdomain()用于翻译/本地化支持。
* @uses add_custom_image_header()添加对自定义标题的支持。
* @uses register_default_headers()注册主题提供的默认自定义标题图像。
* @uses set_post_thumbnail_size()设置自定义的发布缩略图大小。
*
* /
function viti_setup(){

//这个主题使用editor-style.css风格的可视化编辑器来匹配主题风格。
add_editor_style();

// Post Format支持。也就是文章编辑页面右侧文章形式。
add_theme_support('post-formats',array('aside','gallery'));

//打开缩略图功能
add_theme_support('post-thumbnails');

//添加默认的帖子和评论RSS feed链接到head
add_theme_support('automatic-feed-links');

//使主题可用于翻译
//翻译可以在/ languages /目录中提交
load_theme_textdomain('viti',get_template_directory()。'/ languages');

$ locale = get_locale();
$ locale_file = get_template_directory()。“/语言/区域设置$。
require_once($ locale_file);

//这个主题在一个位置使用wp_nav_menu()。
register_nav_menus(array(
'primary'=> __('Primary Navigation','viti'),
'Secondary'=> __('Secondary Navigation','viti'),
));

//主题允许用户设置自定义背景
add_custom_background();
}

以上是这个钩子的常见用途,不经常使用的没有描述

亲测代码实例

//主题启用后自定义会员页面模板
if (!function_exists('ldwpw_setup')):

   function ldwpw_setup()
    {
      $setupDb = new setupDb();
      $setupDb->install();//安装数据表
	  
	  
	  //注册自定义页面模板
       $init_pages = array(
         'template/user.php' => array( '用户中心', 'user' ),
         'template/login.php' => array( '登录页面', 'login' ),
         'template/register.php' => array( '注册页面', 'register' ),
         'template/tougao.php' => array( '会员投稿', 'tougao' )
          );
        foreach ($init_pages as $template => $item) {
        $one_page = array(
         'post_title'  => $item[0],
         'post_name'   => $item[1],
         'post_status' => 'publish',
         'post_type'   => 'page',
         'post_author' => 1
         );
         $one_page_check = get_page_by_title( $item[0] );
         if(!isset($one_page_check->ID)){
            $one_page_id = wp_insert_post($one_page);
            update_post_meta($one_page_id, '_wp_page_template', $template);
           }
          }
	  
	}
endif;
//主题安装启用后运行
add_action('after_setup_theme', 'ldwpw_setup');
0 条回应