本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或从新修改使用,但须要注明来源。 署名 4.0 国际 (CC BY 4.0)php
本文做者: 苏洋html
建立时间: 2019年06月28日 统计字数: 3644字 阅读时间: 8分钟阅读 本文连接: soulteary.com/2019/06/28/…nginx
今年年初的时候,我曾经写过接近十篇博客,介绍如何“从零到一搭建Wiki”,聊过了 MediaWiki、Doku、Confluence、Tiddly、MoinMoin 等系统,可是这里涉及的许多系统的写做体验都不是很好。web
在以后,我也写过几篇 “如何使用容器技术搭建 WordPress” 的文章,据官方数据称 WordPress 目前已经占据了互联网 34% 的应用,写做体验和插件生态其实仍是很棒的,那么咱们为什么不使用 WordPress 来搭建 Wiki 呢?docker
在使用了4个月以后,体验下来问题不大,我决定把方法分享出来,但愿能帮到更多的人。若是你熟悉 WordPress 的搭建,本篇将文章两三分钟内就可以搞定啦。编程
在搭建以前,咱们明确一下我的 Wiki 的主要功能(以我我的为例):浏览器
别看这些功能都很“基础”,文章开头提到的软件,这些功能或多或少都不支持、或者作的差强人意呢。bash
搭建过程以前的文章中有提,有兴趣的同窗能够进行翻阅。cookie
固然,你也可使用传统的方案进行搭建。session
使用最新的 5.0 版本的软件,默认安装完毕后,你将看到下面的界面。
默认的界面适合展现博客列表内容,对于 Wiki 用途而言不是特别友好,解决方案十分简单,咱们进入管理后台,先将 ** 二〇一九** 主题切换为 ** Twenty Sixteen** 。
而后点击主题上方的“自定义”按钮,开始对主题进行自定义调整。点击左侧菜单的小工具,而后按照你的需求对主题进行调整,好比我在这里,保留了“搜索框”、“分类目录”、“近期文章”、“功能”四个模块,并按照这个顺序对模块进行了调整。
接着打开 设置菜单中的阅读页面,将主页显示调整为静态页面,并选择静态页面为示例页面。
当前展现的页面看起来仍是不像一个Wiki,那么咱们继续进行调整。
仍是打开管理后台的主题菜单页面,选择最后一项编辑(Theme Editor),开始对主题源文件进行修改。(若是你由于一些缘由不能在浏览器直接修改这个文件,也能够经过编辑 wp-content/themes/twentysixteen/page.php
文件来达到一样效果)
在右侧选择 page.php
,原始的代码以下:
<?php
/**
* The template for displaying pages
*
* This is the template that displays all pages by default.
* Please note that this is the WordPress construct of pages and that
* other "pages" on your WordPress site will use a different template.
*
* @package WordPress
* @subpackage Twenty_Sixteen
* @since Twenty Sixteen 1.0
*/
get_header(); ?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
// Start the loop.
while ( have_posts() ) :
the_post();
// Include the page content template.
get_template_part( 'template-parts/content', 'page' );
// If comments are open or we have at least one comment, load up the comment template.
if ( comments_open() || get_comments_number() ) {
comments_template();
}
// End of the loop.
endwhile;
?>
</main><!-- .site-main -->
<?php get_sidebar( 'content-bottom' ); ?>
</div><!-- .content-area -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>
复制代码
修改很简单,咱们把最下面的 get_sidebar();
放到 <main>
以前,并补充一段样式便可。
<?php
/**
* The template for displaying pages
*
* This is the template that displays all pages by default.
* Please note that this is the WordPress construct of pages and that
* other "pages" on your WordPress site will use a different template.
*
* @package WordPress
* @subpackage Twenty_Sixteen
* @since Twenty Sixteen 1.0
*/
get_header(); ?>
<div id="primary" class="content-area">
<style>
.sidebar{
column-count: 5;
column-width: 240px;
column-gap: 20px;
}
</style>
<?php get_sidebar(); ?>
<main id="main" class="site-main" role="main">
<?php
// Start the loop.
while ( have_posts() ) :
the_post();
// Include the page content template.
get_template_part( 'template-parts/content', 'page' );
// If comments are open or we have at least one comment, load up the comment template.
if ( comments_open() || get_comments_number() ) {
comments_template();
}
// End of the loop.
endwhile;
?>
</main><!-- .site-main -->
<?php get_sidebar( 'content-bottom' ); ?>
</div><!-- .content-area -->
<?php get_footer(); ?>
复制代码
当你在 Wiki 中适当填充一些内容以后,你会获得这样的页面。
在插件中心搜索并安装 WP Githuber MD
,完成以后,记得启用插件。
再次打开编辑器,你会发现本来的所见即所得编辑器就变成了咱们熟悉的左右分栏的 Markdown 编辑器。
在浏览器性能愈来愈高的今天,咱们几乎彻底不须要再使用服务端进行代码高亮啦。而且我的 Wiki 几乎没有搜索引擎 SEO 的需求。
在插件中心搜索并安装 WP Code Highlight.js
,启用插件后,文章中的代码便会自动进行高亮展现啦。
若是你是我的使用,搭建在内网,彻底不须要考虑权限问题,那么能够和我同样,设置 WordPress 自动登陆。
在 wp-config.php
的 require_once ABSPATH . 'wp-settings.php';
前,添加下面一段代码。
if ($_SERVER['SCRIPT_NAME'] == '/wp-login.php') {
require_once ABSPATH . 'wp-settings.php';
require_once ABSPATH . '/wp-load.php';
if (
isset($_SERVER['QUERY_STRING']) &&
(strpos($_SERVER['QUERY_STRING'], '=logout') !== false)
) {
wp_destroy_current_session();
wp_clear_auth_cookie();
do_action('wp_logout');
} else {
$user_login = getenv('WP_USER');
$user = get_userdatabylogin($user_login);
$user_id = $user->ID;
wp_set_current_user($user_id, $user_login);
wp_set_auth_cookie($user_id);
do_action('wp_login', $user_login);
}
wp_redirect(home_url(), 302);
die;
}
复制代码
实现原理很简单,赶在程序大部队执行前,劫持应用登录路由,自动替用户设置登陆状态。
WordPress 是一款开源免费的软件,由 PHP 编写。前文提过,据官方数据,目前已经占据了 34% 的互联网软件份额。
Use the software that powers over 34% of the web. — wordpress.org/download
我我的从 2009 年开始使用它到如今:
在新浪云工做的时候,我负责过 WP4SAE 的开发维护,即便不看平台下载数据,单从我每次换公司,都能发现有很多的同事用过,就能够看出用户量应该还不错(偷笑); 在淘宝工做的时候有写过几个下载量还不错的 WP 插件,其中一个被 360 CDN 资源站官方推荐(用于替换 Google Fonts,加速博客打开); 也曾基于它(淘宝UED博客)作过一套自动化的 D2 会议电子票程序,历史 GitHub 仓库到如今还有近千 pull request 和大几百的 fork; 还曾在内部使用它做为 confluence 的替代者,存放多个修改版本的技术文章…
从某种意义来讲,我也算是见证了这套软件的进化过程。固然,个人我的成长过程当中也屡次受惠于这套软件。我认为这是一款伟大的软件,某种意义来讲,也是一个很成功的开源项目。
但从网上的帖子来看,一旦提起这款软件,老是出现过分的批判,甚至许多人根本不知道时过境迁,一些事情早已被改变。甚至出现了批判 WordPress 是政治正确的事情… 技术没有银弹,软件也是,在适合的场景用适合的技术,遇到问题分析并解决问题,才是技术人应该作的事情,而不是一味批判和吐槽。
感谢 WordPress ,替我节约了大量的时间去折腾更有意思的事情。
— EOF
我如今有一个小小的折腾群,里面汇集了一些喜欢折腾的小伙伴。
在不发广告的状况下,咱们在里面会一块儿聊聊软件、HomeLab、编程上的一些问题,也会在群里不按期的分享一些技术沙龙的资料。
喜欢折腾的小伙伴欢迎扫码添加好友。(请注明来源和目的,不然不会经过审核)