wordpress全站生成静态文件(非插件代码版)之首页
分类:wordpress教程 时间:2020-08-01 浏览:2,220 

不知道大家对wordpress无法生成静态文件有什么想法,但是我帮大家实现了.虽然php7已经可以通过开启opcache与Memcache缓存,大大提升wordpress的速度,但是服务器还会出现卡顿,虚拟主机无法使用等问题.

最近比较忙,先大体说一下,全站生成静态原理,和首页生成代码吧(已经在阿里云阉割版虚拟主机上测试成功,无问题).

现在本静态化功能支持:

1.支持自定义选择要生成静态的页面.

2.支持自定义静态模板文件.

3.支持兼容wordpress内置函数.

4.支持发布文章后自动更新首页及各个分类列表页.

5.分类列表支持系统默认分页功能.

6.支持单页面,文章展示页面生成静态.

7.支持全站搜索功能,建议搜索结果页面不要生成静态.

8.支持文章移除到回收站,删除当前文章已经生成的静态文件并更新首页,各个分类列表的静态文件(包括分页).

9.支持文章从回收站还原,生成当前文章静态文件并更新首页,各个分类列表静态文件(包括分页).

10.支持篇文章选择多个分类,并同时生成静态文件.

11.支持批量生成所有分类列表页面,所有的文章展示页,所有的page单页面,tag页面临时没做,一键删除所有的静态html文件.

12.支持显示生成静态文件所耗时间,生成速度快.

13.支持选错模板或点错批量生成静态文件时,提醒错误功能,防止出现生成静态混乱.

先写这些吧,

原理就是,我们需要制作几个生成静态文件的模板,集成后台控制面板,一键生成静态的html文件,不会出现缓存到期二次生成的问题,

1.我们先在后台添加生成静态的控制面板

 

 

主要代码:

add_action('init','create_product_post_type');
function create_product_post_type() {
register_post_type('html',
array('labels' => array(
'name' => '静态模板',
'singular_name' => '静态模板',
'add_new' => '新建模板',
),
'public' => true,
'has_archive' => true,
'rewrite' => true,
// 'hierarchical' => true,
'show_in_rest' => false, //启用古腾堡编辑器
'supports' => array('title','editor','revisions','custom-fields'),
'menu_position' => 22
)
);
}
add_action('admin_menu', 'scjt_menu');
function scjt_menu() {//顶级菜单的slug是menus
add_submenu_page('edit.php?post_type=html','生成静态','生成静态','administrator','scjt','scjt_page');
<fieldset><legend>选择模板</legend>
<?php $html_query = get_posts("post_type=html&numberposts=-1");
// p($html_query);
echo '<select class="select">';
echo '<option value="">选择静态模板</option>';
foreach($html_query as $post):setup_postdata($post);
echo '<option value="'.$post->ID.'">'.$post->post_title.'</option>';
endforeach;
echo '</select>';?>
</fieldset><br>
<legend>生成静态</legend>
<form method="POST" action="" name="index_form">
<input type="hidden" name="index_update" value="update"/>
<input type="hidden" name="index_html" value=""/>
<div align="center"><input type="submit" class="save-button" name="index_button" value="生成index首页"/></div>
</form>

2.制作首页静态模板,部分代码

/**
* template name:index_html
* template post type:html
*/
function index_html($sec,$path,$echo=0){
$start = microtime(true);
$sec=base64_decode($sec);
$path=base64_decode($path);

$html_static=get_option('html_static');
if($sec!=$html_static['html_sec']){echo '非法访问,禁止执行';die;}
? >
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<title>< ? php bloginfo('name');echo ' - ';bloginfo('description');? ></title>
< ? php keywords();? >

3.新建一个生成首页静态的页面,模板选择首页的,自定义栏目中添加首页识别标识,标题可以随便起,点发布.

 

4.在控制面板中选择首页一键生成就可以了.

 

5.这是批量生成分类列表所用时间

 

6.这是批量生成文章展示页所用时间

 

7.从图中可以看出没个文件生成耗时,基本都在毫秒之间,所以使用本静态生成功能,基本不会出现等待很久的时间.今天先到这吧,有问题可以在下面评论,也可以在QQ群交流1105578185

php数据缓存memcached 1.6.6 客户端集成可视化工具 https://www.52pojie.cn/thread-1232090-1-1.html

自己开发的有需要可以试试,集成工具很方便

如果觉得本站内容对你有益,可对本站赞助,本站会不定时发布高质量内容。

  • 头像

    jnn6

    最近比较忙,本站还未添加本功能,已在测试站适配完毕.

    2020-08-01 回复

© 2016-2025 dds6 版权所有 | 鲁ICP备2022041124号 | 网站地图

查询:51次 | 用时:3.122秒 | 总浏览:188540 | 总访问:1519537