


cos-html-cache に基づいて純粋に静的な WordPress ページを KVDB_html/css_WEB-ITnose に実装する
Jackie は最初、SAE のデフォルトの WordPress 3.4.1 を使用していましたが、PHP に疎いので我慢する必要がありました。
その後、Web サイトを閲覧しているときに、偶然 [WordPress SAE 修正版] SAE 上の WordPress が 4.1 に更新されました 記事には、WordPress 4.1 SAE の改良されたダウンロード リンクとアップグレード方法が記載されていました。シンプルで分かりやすかったので、Jackie のブログをバージョン 4.1 にアップグレードしました。
数日前、Jackie が情報をチェックしていたときに、偶然 SAE 版の WordPress 静的プラグインを見てしまい、落ち着かず、で紹介されている方法に従って長時間いじってしまいました。の記事を参照し、最終的に静的バージョンを入手しました。
ブログの静的化の手順
- cos-html-cache プラグインの公式 Web サイトからプラグインをダウンロードします。最新バージョンは 2.7.4 です。プラグインを解凍し、圧縮パッケージ内のファイルを wp-content/plugins/cos-html-cache にアップロードします。ディレクトリ内のファイル レイアウトは次のとおりです。
common.js.phpcos-html-cache.phpcosbeta-zh_CN.mocosbeta-zh_CN.poreadme-chs.txtreadme.txt
ログイン後にコピー - にindex.php を追加します。プラグイン ディレクトリ ファイル、内容は次のとおりです。
<?php define("SUMMETA","<! --this is the first view page created at ".date("Y-m-d H:i:s")." by JackieAtHome index.php -->"); $kv = new SaeKV(); $kv->init(); $sitemap = $kv->get($_SERVER['SCRIPT_URI']."index.html"); if ($sitemap) { header('Content-type:text/html; charset=utf-8'); echo $sitemap; }else{ echo fetchUrl($_SERVER['SCRIPT_URI']).SUMMETA; } function fetchUrl($url){ $ch=curl_init(); curl_setopt($ch, CURLOPT_AUTOREFERER,0); curl_setopt($ch, CURLOPT_REFERER, 'staticindex'); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $ret=curl_exec($ch); curl_close($ch); if ($ret) { return $ret; }else{ return false; }}?>
ログイン後にコピー - プラグイン ディレクトリに static.php を追加します。内容は次のとおりです。
<?php define("SUMMETA","<! --this is the first view page created at ".date("Y-m-d H:i:s")." by JackieAtHome static.php -->"); $kv = new SaeKV(); $kv->init(); $sitemap = $kv->get($_SERVER['SCRIPT_URI']); if ($sitemap) { header('Content-type:text/html; charset=utf-8'); echo $sitemap; }else{ echo fetchUrl($_SERVER['SCRIPT_URI']).SUMMETA; } function fetchUrl($url){ $ch=curl_init(); curl_setopt($ch, CURLOPT_AUTOREFERER,0); curl_setopt($ch, CURLOPT_REFERER, 'static'); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $ret=curl_exec($ch); curl_close($ch); if ($ret) { return $ret; }else{ return false; }}?>
ログイン後にコピー - SAE の設定を変更します。 yaml に書き換えルールを追加します。内容は次のとおりです。
name: app_nameversion: app_versionhandle: - rewrite: if ( %{REQ:REFERER} != "static" && %{REQUEST_URI} ~ "html$" ) goto "wp-content/plugins/cos-html-cache/static.php" - rewrite: if ( !is_dir() && !is_file()) goto "index.php?%{QUERY_STRING}" - rewrite: if ( path ~ "/(\s*)$" && %{REQ:REFERER} != "staticindex" ) goto "wp-content/plugins/cos-html-cache/index.php"
ログイン後にコピー - cos-html-cache.php を変更し、SaeKV オブジェクトを使用してデータの保存と読み取りを行います。 以下はパッチ
Index: cos-html-cache.php===================================================================--- cos-html-cache.php (revision 27)+++ cos-html-cache.php (revision 28)@@ -84,17 +84,21 @@ } if ( !strstr( strtolower($Content), '</html>' ) ) return;+ $kv=new SaeKV();+ $kv->init();+ $kv->set($path, $Content);+ //if sql error ignore...- $fp = @fopen( $path , "w+" );- if( $fp ){- @chmod($path, 0666 ) ;- @flock($fp ,LOCK_EX );+// $fp = @fopen( $path , "w+" );+// if( $fp ){+// @chmod($path, 0666 ) ;+// @flock($fp ,LOCK_EX );- // write the file。- fwrite( $fp , $Content );- @flock($fp, LOCK_UN);- fclose($fp);- }+// // write the file。+// fwrite( $fp , $Content );+// @flock($fp, LOCK_UN);+// fclose($fp);+// } } /* read the content from output buffer */@@ -137,16 +141,27 @@ elseif( SCRIPT_URI == CosSiteHome) {// creat homepage- $fp = @fopen( CosBlogPath."index.bak" , "w+" );- if( $fp ){- @flock($fp ,LOCK_EX );- // write the file。- fwrite( $fp , $buffer.COSMETA );- @flock($fp, LOCK_UN);- fclose($fp);- }- if(IS_INDEX)- @rename(CosBlogPath."index.bak",CosBlogPath."index.html");+ + $kv=new SaeKV();+ $kv->init();+ if (IS_INDEX) {+ $kv->set(CosBlogPath."index.html", $buffer.COSMETA);+ }+ else {+ $kv->set(CosBlogPath."index.bak", $buffer.COSMETA);+ }+ + +// $fp = @fopen( CosBlogPath."index.bak" , "w+" );+// if( $fp ){+// @flock($fp ,LOCK_EX );+// // write the file。+// fwrite( $fp , $buffer.COSMETA );+// @flock($fp, LOCK_UN);+// fclose($fp);+// }+// if(IS_INDEX)+// @rename(CosBlogPath."index.bak",CosBlogPath."index.html"); } else CreateHtmlFile($_SERVER['REQUEST_URI'],$buffer.COSMETA );
ログイン後にコピー < です。 🎜>ブログのバックエンドにログインし、[設定] -> [パーマリンク] に移動し、URL の形式を /archives/%post_id%.html に変更します。つまり、最後に .html を追加します。 - ブログ バックエンドにログインし、プラグイン ページを開き、cos-html-cache プラグインを見つけて、クリックして有効にします。
- ホームページまたは記事ページを更新し、ページの下部に次のコードが表示される場合は、または
<! --this is the first view page created at 2016-04-01 22:35:13 by JackieAtHome index.php -->
ログイン後にコピーおめでとうございます、ブログ ページは正常に静的にレンダリングされました。<! --this is the first view page created at 2016-04-01 22:35:13 by JackieAtHome static.php -->
ログイン後にコピー
- WP-PostViewsプラグインの記事閲覧統計機能が無効になっているため、WordPressの問題を手動で解決する方法を参照してください。 WP-PostViews が Ajax を介してカウントされない場合は、ページ