スキップしてメイン コンテンツに移動

投稿

2015の投稿を表示しています

スマホ時のみ、動的にURLにハッシュ追加し、ナビゲーション部を最上部に配置(長いヘッダー部をスキップしてナビ以下を表示)する方法

趣旨 レスポンシブサイトで(PCサイトと構造を共通にする関係で)、ヘッダー部にロゴやらテキストやらバナーやらを配置する必要があり、スマホ時の ファーストビューの大部分をヘッダー部が占拠 してしまい、コンテンツまでが遠くなってしまうことは多々あります。 その場合、グローバルナビゲーション部分にアンカー(<div id="gnavi"等)を作っておいて、ページ遷移時にそのアンカーにリンク(<a href="/page/#gnavi"等)し、グローバルナビゲーションが画面の最上部に表示されるようにする(ヘッダー部分は上部にスクロールすれば見える)のもひとつの方法です。 しかしスマホサイトのみでの仕組みのため、 ソースコードはいじりたくありません。 そんなときに、JavaScriptで画面の幅を判定し、スマホ時のみリンクアドレスに動的にアンカー名を追加してしまう方法を記載します。 方法 方法は簡単で、以下のコードでOKなはずです。 $(document).ready(function () {     if ($(window).width() < 768) {         $('a').click(function(e) {             if ($(this).attr('href') && !$(this).hasClass("in-page-link")) {                 $(this).attr('href', $(this).attr('href') + "#gnavi");             }         });     } }); 解説 特に難しいところはないと思いますが、注意点としては、上記を実装すると、ブラウザの幅が 768px未満のときは、全てのリンクにアンカー名(ハッシュ、#gnavi)が追加されてしまいますので、追加されたくないリンクはif文で除外するようにしています。(上記の例では.in-page-linkというクラスをもつ aタグは動作対象外としています。)

CloudFlareでWordPressサイトの表示速度を高速化(SPDY化)!かつSSL(https)化!CloudFlareの導入方法!

【趣旨】 既にWordPressで構築済みのWEBサイトに、CloudFlareを導入して高速化(ついでにSSL化)する方法を解説します。 【CloudFlareの高速化の仕組み】 ざっくりですが、以下の仕組みによりWEBサイトの表示が高速化します。 CloudFlare公式サイト: https://www.cloudflare.com/ CloudFlareのCDN(高速に配信するために最適化されたネットワーク)に既存コンテンツをキャッシュさせる。 当該ドメインのネームサーバー情報を変更し、上記CDNを参照させるようにする これにより、いままでhttp://aaa.com/などとブラウザのアドレスに入力されると、ブラウザはDNS(ドメインと実際のサーバーの場所をひもづける賢い仕組み)に問い合わせて、既存サーバーにデータを取りに行っていましたが、CloudFlare導入後は、CloudFlareの高速で最適化されたCDNを見に行くようになり、表示が高速化されます。 【今回の前提環境】 以下の環境にCloudFlareを導入するものとします。 ・サーバー:エックスサーバー(X10プラン) ・CMS:WordPressで構築済み ・CloudFlare Pro版を購入 【既存サイト導入に対する問題点】 問題点1 無料版の場合、SSL証明書発行にきっちり24時間かかる。 =>Pro版を購入※すれば即時発行されます。今回は既にリリース済みサイトということもあり、Pro版を購入するものとします。 ※1サイト目は$20、2サイト目以降は、プラス$5 問題点2 ネームサーバーの浸透時間(ユーザーそれぞれの環境により異なる) =>どう問題か。以下に記載します。 ・ドメインのネームサーバーをCloudFlareのものに書き換える必要があるため、各ユーザーの環境次第で浸透時間に差がでます。 ・浸透早いユーザー(以下、早ユーザー):CloudFlareのCDNにキャッシュされたコンテンツを見に行きます。 ・浸透遅いユーザー(以下、遅ユーザー):エックスサーバーのコンテンツを見に行きます。 ・WordPressの設定(<?php bloginfo(&#

WordPressのカスタムフィールドの出力をCSSで素敵にデザイン(フィルターフック未使用版)

【趣旨】 WordPress(に限ったことではありませんが)のカスタムフィールドなどの出力で な出力を、PHPの「preg_replace」を使用して という素敵な見た目に変更します。 (フィルターフックは使用しませんので、functions.phpは編集不要です。) 【コード的には】 Before <p>本日は晴天なりテキストテキストテキストテキストテキスト...</p> <p>二段落目テキストテキストテキストテキストテキストテキストテキスト...</p> After <p><span class='mydeco'>本</span>日は晴天なりテキストテキストテキストテキストテキスト...</p> <p>二段落目テキストテキストテキストテキストテキストテキストテキスト...</p> CSS .mydeco { color: #fff; background: #c6506d; margin: 6px 5px 0 0; padding: 17px 12px 12px; text-align: center; float: left; font-size: 44px; font-weight: 400; line-height: 30px; } (CSSはあらかじめ用意しておきます。) 【方法】 テンプレートの当該カスタムフィールドの出力が <?php the_field('cf_mytxt',$post->ID); ?> だとして、出力箇所を以下のように変更します。 (※プラグイン「 Advanced Custom Fields 」での出力方法です。  標準では post_custom('cf_mytxt')のように取得します。) <?php $string = get_field('cf_mytxt',$post->ID); //(1) $pattern = "/^<p>(.)(.+)$/mu"; //(2) $replac