ホームページ  >  記事  >  ウェブフロントエンド  >  cos-html-cache に基づいて純粋に静的な WordPress ページを KVDB_html/css_WEB-ITnose に実装する

cos-html-cache に基づいて純粋に静的な WordPress ページを KVDB_html/css_WEB-ITnose に実装する

WBOY
WBOYオリジナル
2016-06-21 08:52:251510ブラウズ

Jackie は最初、SAE のデフォルトの WordPress 3.4.1 を使用していましたが、PHP に疎いので我慢する必要がありました。

その後、Web サイトを閲覧しているときに、偶然 [WordPress SAE 修正版] SAE 上の WordPress が 4.1 に更新されました 記事には、WordPress 4.1 SAE の改良されたダウンロード リンクとアップグレード方法が記載されていました。シンプルで分かりやすかったので、Jackie のブログをバージョン 4.1 にアップグレードしました。

数日前、Jackie が情報をチェックしていたときに、偶然 SAE 版の WordPress 静的プラグインを見てしまい、落ち着かず、で紹介されている方法に従って長時間いじってしまいました。の記事を参照し、最終的に静的バージョンを入手しました。

ブログの静的化の手順

  1. 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
  2. に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;    }}?> 
  3. プラグイン ディレクトリに 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;    }}?> 
  4. 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"  
  5. 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 );
  6. ブログのバックエンドにログインし、[設定] -> [パーマリンク] に移動し、URL の形式を /archives/%post_id%.html に変更します。つまり、最後に .html を追加します。
  7. ブログ バックエンドにログインし、プラグイン ページを開き、cos-html-cache プラグインを見つけて、クリックして有効にします。
  8. ホームページまたは記事ページを更新し、ページの下部に次のコードが表示される場合は、

    <! --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 を介してカウントされない場合は、ページ 36cc49f0c466276486e50c850b7e4956 の前に次のコードを追加します。
  1. <?php if (is_singular()) : ?>    <!-- ajax post view -->    <script type="text/javascript">        $.ajax({            url: "<?php echo get_site_url(). '/wp-admin/admin-ajax.php?>'?>",            data: {                "postviews_id": "<?php the_ID(); ?>",                "action": "postviews",                "_": new Date().getTime()            }        });    </script><?php endif; ?>
  2. ピンバックは無効です。現在のブログテーマの header.php で、CSS 参照の前に次のコードを追加します。
  3. <link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
参考資料

    WordPress 静的プラグイン SAE 版
  • wordpress のキャッシュプラグイン cos-html-cache のソースコード解釈
  • wordpress で組み込みの admin-ajax.php を使用する
  • WordPress の組み込み admin-ajax リクエスト ajax が遅すぎる
  • WordPress WP の問題を手動で解決するAjax 経由で PostView がカウントされない
  • 【WordPress SAE 修正版】SAE 上の WordPress が 4.1 に更新されました
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。