分类目录归档:WordPress

nginx反代iis 支持泛域名,支持WordPress多站点

nginx配置:

upstream qd-aliyun-8006 {
    server x.x.x.x:8006;
}

server {
    listen 80;
    server_name softc.cc *.softc.cc;

    location / {
        proxy_pass http://qd-aliyun-8006;
        proxy_redirect default;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Real-Port $remote_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Port  $server_port;
        proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;
    }
}

注意是要有 proxy_set_header Host $host; 这一行。

WordPress开启多站点

wordpress 有一个多站点模式,开启这个模式后,可以在一个后台管理多个独立的网站,省时方便。

开启wordpress多站点模式非常简单,按下面的步骤操作即可:

打开config.php,在 /* 好了!请不要再继续编辑。请保存本文件。使用愉快! */ 这句话的上一行,添加如下代码:

define('WP_ALLOW_MULTISITE', true);

 保存后,即可开启wordpress多站点模式。

WordPress 主题开发基础代码

以下代码添加到functions.php:

// 允许自动更新小版本,但禁止大版本更新
add_filter( 'allow_major_auto_update', '__return_false' );
add_filter( 'allow_minor_auto_update', '__return_true' );

// 禁止后台更新页面显示新版本更新提示
add_filter( 'site_transient_update_core', function( $value ) {
    if ( is_object( $value ) && isset( $value->updates ) ) {
        foreach ( $value->updates as $key => $update ) {
            // 移除新版本更新提示
            if ( version_compare( $update->current, get_bloginfo( 'version' ), '>' ) ) {
                unset( $value->updates[ $key ] );
            }
        }
    }
    return $value;
} );

// 移除站点健康菜单
add_action( 'admin_menu', 'remove_site_health_submenu', 999 );
function remove_site_health_submenu() {
    $page = remove_submenu_page( 'tools.php', 'site-health.php' );
}

// 禁用站点健康功能
add_filter('health_check_enabled', '__return_false');

// 移除仪表盘中的小部件
add_action('wp_dashboard_setup', 'remove_dashboard_widgets');
function remove_dashboard_widgets() {
    remove_meta_box('dashboard_site_health', 'dashboard', 'normal'); // 站点健康
    remove_meta_box('dashboard_activity', 'dashboard', 'normal'); // 活动
    remove_meta_box('dashboard_primary', 'dashboard', 'side'); // 新闻
    // remove_meta_box('dashboard_quick_press', 'dashboard', 'side'); // 保留快速草稿
    remove_meta_box('dashboard_right_now', 'dashboard', 'normal'); // 概览
    remove_action('welcome_panel', 'wp_welcome_panel');// 欢迎小部件
}

// Hide dashboard update notifications for all users
function kinsta_hide_update_nag() {
    remove_action( 'admin_notices', 'update_nag', 3 );
}
add_action('admin_menu','kinsta_hide_update_nag');

//禁用 emoji(表情符号)功能
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');

//移除后台左上角WP图标
function remove_wp_logo($wp_admin_bar) {
    $wp_admin_bar->remove_node('wp-logo');
}
add_action('admin_bar_menu', 'remove_wp_logo', 999);

// 让wp_head()函数支持显示title标签
add_theme_support( 'title-tag' );

移除wordpress后台相关的功能

// 移除站点健康菜单
add_action( 'admin_menu', 'remove_site_health_submenu', 999 );
function remove_site_health_submenu() {
    $page = remove_submenu_page( 'tools.php', 'site-health.php' );
}

// 禁用站点健康功能
add_filter('health_check_enabled', '__return_false');

// 移除仪表盘中的小部件
add_action('wp_dashboard_setup', 'remove_dashboard_widgets');
function remove_dashboard_widgets() {
    remove_meta_box('dashboard_site_health', 'dashboard', 'normal'); // 站点健康
    remove_meta_box('dashboard_activity', 'dashboard', 'normal'); // 活动
    remove_meta_box('dashboard_primary', 'dashboard', 'side'); // 新闻
    // remove_meta_box('dashboard_quick_press', 'dashboard', 'side'); // 保留快速草稿
    remove_meta_box('dashboard_right_now', 'dashboard', 'normal'); // 概览
    remove_action('welcome_panel', 'wp_welcome_panel');// 欢迎小部件
}

wordpress apache .htaccess

如果使用apache来部署wordpress,这是相应的.ataccess文件的内容,记录以备用。

# BEGIN WordPress
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

常用的WordPress模板文件

wordpress模版文件相关对照:

sidebar.php(侧边栏),

index.php(首页索引),

style.css(样式文件),

category.php(分类目录),

archive.php(文章存档),

search.php(搜索文件),

single.php(文章详情),

page.php(单页/独立页),

tag.php(标签文件),

author.php(作者),

functions.php(主题函数),

404.php(404错误页),

header.php(头部文件),

footer.php(底部文件),

comments.php(评论)。

常用的WordPress模板文件

以下是WordPress识别的一些基本主题模板和文件的列表。

  • index.php 主模板文件。 所有主题都是必需的。
  • style.css 主要样式表。 它在所有主题中都是必需的,并且包含主题的信息标题。
  • rtl.css 如果网站语言的文本方向是从右到左,则自动包含从右到左的样式表。
  • comments.php 评论模板。
  • front-page.php 首页模板始终用作站点首页(如果存在),无论管理员>设置>阅读上的设置如何。
  • home.php 默认情况下,主页模板是首页模板。 如果您没有将WordPress设置为使用静态首页,则此模板用于显示最新的帖子。
  • header.php 标题模板文件通常包含您的站点的文档类型,元信息,样式表和脚本的链接以及其他数据。
  • singular.php 单独的模板用于没有找到single.php的帖子,或者当没有找到page.php的页面时。 如果没有找到singular.php,则使用index.php。
  • single.php 当访问者请求单个帖子时,使用单个帖子模板。
  • single-{post-type}.php 访问者从自定义帖子类型请求单个帖子时使用的单个帖子模板。 例如,single-book.php将用于从定制的帖子类型命名的书中显示单个帖子。 如果不存在自定义帖子类型的特定查询模板,则使用index.php。
  • archive-{post-type}.php 当访问者请求自定义帖子类型归档时,将使用归档文件类型模板。 例如,archive-books.php将用于显示自定义帖子类型命名书籍的帖子存档。 如果archive-{post-type} .php不存在,则使用archive.php模板文件。
  • page.php 当访问者请求单独的页面(内置模板)时,将使用页面模板。
  • page-{slug}.php 访问者请求特定页面时使用页面插件模板,例如使用“about”slug(page-about.php)的页面插件模板。
  • category.php 当访问者按类别请求帖子时,将使用类别模板。
  • tag.php 当访问者通过标签请求帖子时,使用标记模板。
  • taxonomy.php 当访问者在自定义分类法中请求术语时,将使用分类术语模板。
  • author.php 访问者加载作者页面时,将使用作者页面模板。
  • date.php 日期/时间模板在通过日期或时间请求帖子时使用。 例如,使用这些子生成的页面:
  • http://example.com/blog/2014/
  • http://example.com/blog/2014/05/
  • http://example.com/blog/2014/05/26/
  • archive.php 当访问者按类别,作者或日期请求帖子时,使用归档模板。 注意:如果存在类似于category.php,author.php和date.php的更多特定模板,则此模板将被覆盖。
  • search.php 搜索结果模板用于显示访问者的搜索结果。
  • attachment.php 当查看单个附件(如图像,pdf或其他媒体文件)时,将使用附件模板。
  • image.php 图像附件模板是attachment.php的更具体的版本,在查看单个图像附件时使用。 如果不存在,WordPress将使用attachment.php。
  • 404.php 当WordPress找不到与访问者请求相匹配的帖子,页面或其他内容时,将使用404模板。

使用模板文件

在WordPress模板中,您可以使用模板标签动态显示信息,包括其他模板文件,或以其他方式自定义您的网站。

例如,在index.php中,您可以在最终生成的页面中包含其他文件:

  • 要包括标题,请使用 get_header()
  • 要包含边栏,请使用 get_sidebar()
  • 要包括页脚,请使用 get_footer()
  • 要包含搜索表单,请使用 get_search_form()
  • 要包括自定义主题文件,请使用 get_template_part()

以下是WordPress模板标记的示例,以将特定的模板包含在您的页面中:

<?php get_sidebar(); ?>
<?php get_template_part( ‘featured-content’ ); ?>
<?php get_footer(); ?>