WordPress 動的にIDを振る方法(移動ナビ用)

wordpresslogo-e1367355053944

ワードプレスのナビ作る時に学んだ事のメモです。

HTMLだけで飛ばすだけなら簡単に作れたのですがPHPに混ぜるのはすごく工夫がいりました。

例 $terms = get_terms( ‘カテゴリー’, ‘orderby=slug&exclude=123’ );

$termsにカテゴリーの値 並びスラッグを入れてみました。

ちゃんと中に値が入ってるかチェックが必要です。

print_r などをつかってちゃんと何の値が入ってるか中身をチェックしてterm_id をチェックして

自分で作ったナビにIDを貼付けましょう。

<?php  

echo ‘<div>’;
echo ‘<h2 id=”category-‘ . $term->term_id .'”>’ . $term->name . ‘( ‘. $term->count . ‘件 )’ . ‘</h2>’;
echo ‘</div>’;

?>

赤文字は全部$termの中の値から取り出して表示しています。

これで<h2 id=category-(番号)>(カテゴリーネーム)(記事数)件)</h2>が出力されます。

凄い便利です!
今回はfunction.php の方で出力してるのでPHPでの記述方のメモをしてます。。。。

 

 

Sublime Text Package

sublime_text_icon_2181

自分が最近知ったsublime text の色々な使い方のメモします。

私が使うときはCSS、PHP、HTML、JS などのコードを打ち込む事に使う事がほとんどだったのですが、

サブライムテキストには色々な使い道があるみたいです。

emmet やSass などもコンパイルしたりFTPでも使うとこができるらしい!

使うにはパッケージを入れてシステムをダウンロードしないといけないけどSublime text 一つで全部こなす事が出来そうですね!

パッケージの入れ方

スクリーンショット 2016-04-13 18.31.03

 

 

 

なにも書いてないまっさらな状態に

左上のコマンドの View→ show console を押すと

コマンド入れるコンソールが出てきます。

 

 

 

 

コンソール出てきた状態

スクリーンショット 2016-04-13 18.36.34

 

この状態で https://packagecontrol.io/installation#st2 スクリーンショット 2016-04-13 18.25.07

このURL からコードを持ってきて貼付けます。

背景色が灰色のところのコードをコピペしてEnter

上のタブでSublime text 2,3  どっちかのコードに切り替える事ができます。

バージョンを間違ったら動かなくなるので注意してください。

 

 

 

パッケージをインストールした後にMac : command+shift+p ( Windows : control+shift+p )

このコマンドでパッケージのコマンドを開く事ができます。

スクリーンショット 2016-04-13 18.41.21

 

こんな感じで出てくるので自分が使いたいパッケージを入れて行きましょう。

色々な機能があって凄く便利!!

 

 

 

WordPress マルチサイト(サブドメイン型) SSL対応を試してみる

20160411-pict01

こんにちは。
デジタルドリームワークスからHigaです。

早速ですが表題通り マルチサイトのSSL対応を確認していました。
ネット上でもWordpressのシングルドメインやサブディレクトリ型については、検索で多くがヒットしますが
マルチサイト、サブドメイン型についてはあまり確認することが出来なかったので確認してみました。

 

結論としては、問題なく対応出来ました。※テスト環境でですが…

 

サブドメイン型の場合、サブドメイン毎にSSL証明書を取得するか、サブドメインを全て1つの証明書を網羅出来るマルチドメイン、ワイルドカード証明書が必要になります。
コスト面だけを考えればマルチサイト、ディレクトリ型の方が良いですね。
しかし色々なサイト運営の形態があるので、一概には言えませんが…
2016年4月現在でもSSL証明書はかなり安くなっています。
もう少し下がるのか、GoogleのSEO的側面(SSL対応へのランキングの影響)も含めて検討&提案していきたいところですね。

個人の意見としては、SSLはセキュリティーの観点から もちろん導入するべきと思います。
しかしSEOのランキングに大きく影響するという観点だけを見るのであれば、現状ではもう少し時間がかかると感じます。
もちろんGoogleさんもSSLをランキングの指標に入れると宣言していますし、現在も加味しています。今後 徐々に大きく影響してくるのは確実ですが…
SSLはもちろんですが、それにも増して猛プッシュしている、AMPなどのスマホ対応が急務と思っています。

 

———-

 

さて、本題に戻りましてWordpress マルチサイト(サブドメイン型) SSL対応のメモです。
流れとしては、

1. サーバのSSL環境を整える
2. WordPressのSSL対応化
3. WordPressデータのSSL対応とポストデータのSSL対応
4. SSLのチェックとhttpアクセスの際の考慮

というながれでしょうか。
いくつかメモを残しておきます。

 

1. サーバのSSL環境を整える

サーバーのSSL環境についてはOSやそれぞれの環境により異なると思いますので各サーバーで適切に設定を行って下さい。

 

2. WordPressのSSL対応化

WordPressのSSL対応化についてですが、プラグインがあったりもするようですが今回はプラグインを入れずに対応しました。
ネット上で検索をすればシングルサイトについては管理画面->一般設定の項目からすぐに出来るようです。
マルチサイト(サブドメイン型)は管理画面から変更が出来ないので、データベースのデータを直接httpsに変更します。

 

3. WordPressデータのSSL対応とポストデータのSSL対応

この項目は上記の2とかぶるところですが、テーマ内に直接記述した「http://〜」はすべて「https://〜」に変更が必要です。
※プロトコル相対URLがベターみたいです。
またWordpressのポストデータなども画像等はすべて「http://〜」で記述されているので変更が必要になります。
かなり面倒な作業になります。
未確認ですがphpMyAdminなどが入っている環境であれば、SQLコマンドで一括変換など出来ると思います。
自分の場合は、SQLコマンドについて自信が無かった為、一度phpMyAdminからバックアップデータを取り、テキストエディタで一括変換。
再度データをアップする方法をとりました。それでも問題なくて出来ました。

 

4. SSLのチェックとhttpアクセスの際の考慮

どれだけ慎重に確認しても、修正漏れは出てきます。
https対応化はすべての読み込むファイルをhttps化した方が良いそうです。
chromeの場合は、httpで読み込むコンテンツがあると警告が出るので、そこら辺で読み込むデータをすべてhttps化していきます。
プラグイン周りもチェックが必要みたいです。
そして最後にhttpのアクセスをhttpsへ301リダイレクトします。
実際のコードは検索すれば出てきますので省きます。

 

 

さあ、長々と文章が続きましたがいかかでしょうか。
難しいかなと思っていた作業も案外いけました。
ただ作業量としては項目3あたりから多くなりますね。
またこちらの作業はすべてテスト環境で試した為、本番環境での作業は少し不安なところもあります。
SSL証明書はテスト用を発行していただけるところもありますので、そちらを利用して検証する方がより本番環境に近い形で検証出来るのでおススメです。

安全なWebアクセスの為、そして将来は必須となってくるであろうSSL対応についてメモでした。
内容に間違いがある場合や、簡単なやり方もあるよなどご意見などございましたらコメントいただけると幸いです。
それではよろしくお願い致します。m(_ _)m

EC-CUBE プロダクトページコード

eccube

プロダクトページで使うコードメモ

{{ Product.name }} 商品名を表示
{% for ProductCategory in Product.ProductCategories %}

{% for Category in ProductCategory.Category.path %}
<a id=”relative_category_box__relative_category–{{ ProductCategory.product_id }}_{{ loop.parent.loop.index }}_{{ Category.id }}” href=”{{ url(‘product_list’) }}?category_id={{ Category.id }}”>{{ Category.name }}</a>
{% endfor %}

{% endfor %}

上記のコードでループでカテゴリー表示です。

{% for ProductCategory in Product.ProductCategories %}

{% endfor %}

カテゴリーのループです。

{% for Category in ProductCategory.Category.path %}
<a id=”relative_category_box__relative_category–{{ ProductCategory.product_id }}_{{ loop.parent.loop.index }}_{{ Category.id }}” href=”{{ url(‘product_list’) }}?category_id={{ Category.id }}”>{{ Category.name }}</a>
{% endfor %}

カテゴリー設定したカテゴリーがある分全表示(リンク付き) WPのループでカテゴリ追加と一緒なのですが、書き方が少しかわってきます。

{{ Product.code_min }}
{% if Product.code_min != Product.code_max %} ~ {{ Product.code_max }}
{% endif %}

商品登録画面で設定した 商品コードの表示 複数登録したやつも最初に登録した順から表示されます。

{% if Product.hasProductClass -%}
{% if Product.getPrice01Min is not null and Product.getPrice01Min == Product.getPrice01Max %}
通常価格:{{ Product.getPrice01IncTaxMin|number_format }}円(税込)
{% elseif Product.getPrice01Min is not null and Product.getPrice01Max is not null %}
通常価格:{{ Product.getPrice01IncTaxMin|number_format }} ~ {{ Product.getPrice01IncTaxMax|number_format }}円(税込)
{% endif %}
{% else -%}

↓消費税

{% if Product.getPrice01Max is not null %}
通常価格:{{ Product.getPrice01IncTaxMin|number_format }}円(税込)
{% endif %}
{% endif -%}

値段表示のコードです。標準のままだとnumber_formatでは無くpriceになってます。

price は値段表示 自動で¥が入ります。

number_format 数字表示 後ろに単位を設定できる。 ※¥が表示されません。

 

自分もec-cube初心者ですが、みなさんの役にたってもらえると嬉しいです!