对于很多WordPress主题作者来说,往往会添加一个主题的设置页面,主题启用后还要做一些配置才能正常使用。有些作者喜欢把设置页面的链接放到后台的外观菜单下,而有些作者喜欢把设置页面的链接放到设置菜单下,这就给用户造成一些困惑,不知道去哪打开主题设置页面,或许有些用户还不知道有主题设置这回事呢,要知道用户都是很懒的。

主题启用跳转

所以最好的办法是,在外观 - 主题 中点击启用主题后,立马跳转到主题设置页,让用户知道还要设置一些参数。我们只需在主题的functions.php中加入以下PHP代码即可:


global $pagenow;
if ( is_admin() && isset( $_GET['activated'] ) && $pagenow == 'themes.php' ) {
   // admin.php?page=theme-settings-slug 改成你的主题设置页面网址
   wp_redirect( admin_url( 'admin.php?page=theme-settings-slug' ) );
   exit;
}

另外,Sola同学提供了两个更好的方法,同样也只需放到functions.php中。
方法一:


add_action( 'load-themes.php', 'Init_theme' );
function Init_theme(){
  global $pagenow;

  if ( 'themes.php' == $pagenow && isset( $_GET['activated'] ) ) {
    // options-general.php 改成你的主题设置页面网址
    wp_redirect( admin_url( 'options-general.php' ) );
    exit;
  }
}

方法二:


add_action('after_switch_theme', 'Init_theme');
function Init_theme($oldthemename){
  global $pagenow;

  if ( 'themes.php' == $pagenow && isset( $_GET['activated'] ) ) {
    // options-general.php 改成你的主题设置页面网址
    wp_redirect( admin_url( 'options-general.php' ) );
    exit;
  }
}

插件启用跳转

另外我们可以应用到自己写的插件中,让插件启用后跳转到插件设置页面:


global $pagenow;
if ( is_admin() && isset( $_GET['activated'] ) && $pagenow == 'plugins.php' ) {
   // options-general.php?page=plugin-page-slug 改成你的插件设置页面网址
   wp_redirect( admin_url( 'options-general.php?page=plugin-page-slug' ) );
   exit;
}