WordPress カテゴリーページでパーマリンクから”category”を取り除く
WordPress プラグインなしで「category」を除外する方法 category base 削る
【WordPress】パーマリンク設定のカテゴリーベースとは?
WordPressの管理画面→設定→パーマリンク設定で「カスタム構造」を利用している人は多いと思いますが、その下のオプション「カテゴリーベース」や「タグベース」は見て見ぬフリをしているはず(私がそうです)。WPのカテゴリーページでパーマリンクから”category”を取り除く4つの方法
1.カテゴリーベースとは?
カテゴリーベースとは、カテゴリーのURL(カテゴリー一覧ページのURL)の指定に利用するものです(記事のURLには全く無関係)。
通常、「wordpress」というカテゴリーを作成した場合、そのカテゴリーのURLは
http://www.eccube.org/category/wordpress/
となります。そう、カテゴリー名(カテゴリーのスラッグ名)の前に「category」という単語が自動的に入ります。そこでカテゴリーベースの項目に「hoge」を設定すると、「wordpress」カテゴリーのURLは
http://www.eccube.org/hoge/wordpress/
となります。
2.カテゴリー名の前につく「category」を除外する方法
「wordpress」というカテゴリーを作成した場合、そのカテゴリーURLは
http://www.eccube.org/wordpress/
としたいところです(考え方としては、サイト構造として「wordpress」というディレクトリを作成したようにしたい)。
その方法ですが、カテゴリーベースに「.」(ドット)をつけるだけです。それだけで、カテゴリーURLに自動でつく「category」という単語をURLから除外できます。
3.蛇足
カテゴリーベースに「.」を設定し、「domein」というカテゴリを作成した場合、そのURLは以下のようになります。
http://www.eccube.org/domein
その「domein」のカテゴリにはいくつかの記事が所属するわけですが、その記事のURLは特別な設定をしていない場合、次のようにデフォルトのURLになります。
http://www.eccube.org/?p=123
しかし、せっかく「domein」というカテゴリに所属しているならば、以下のようにしたいところです。
http://www.eccube.org/domein/123.html
その方法は、以下のようにするだけです。
つまり、カスタム構造を「/%category%/%post_id%.html」、カテゴリーベースを「.」にするだけです。
なお、カスタム構造の値を「/%category%/%post_id%」にすると、サブカテゴリーページが404エラーとなり、表示されなくなるため、必ず「.html」を付けてください。
或は、
/%category%/%postname%/
プラグインを利用する
プラグインで削除する方法が一般的なよう。
以下の3つあたりが多い。
WordPress › WP No Category Base « WordPress Plugins
WordPress › WP No Category Base – WPML compatible « WordPress Plugins
WordPress › FV Top Level Categories « WordPress Plugins
ただし日本語の扱いや、プラグインをやめたらページが表示されないといった不具合報告を見かけました。
function.php で置換する
ディフォルトの「category」を function.php を使って削除する。
function.php
add_filter(‘user_trailingslashit’, ‘remcat_function’);
function remcat_function($link) {
return str_replace(“/category/”, “/”, $link);
}
add_action(‘init’, ‘remcat_flush_rules’);
function remcat_flush_rules() {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
add_filter(‘generate_rewrite_rules’, ‘remcat_rewrite’);
function remcat_rewrite($wp_rewrite) {
$new_rules = array(‘(.+)/page/(.+)/?’ => ‘index.php?category_name=’.$wp_rewrite->preg_index(1).‘&paged=’.$wp_rewrite->preg_index(2));
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
WordPress の内部についても分かってないといけないですね。
Apache の mod_rewrite で書き換える
.htaccess あたりに追記する。
既存の.htaccessをバックアップしてから、以下の1行を追記します。
RewriteRule ^category/(.+)$ http://yourwordpresssite.com/$1 [R=301,L]
※もちろん「yourwordpresssite.com」はあなたのサイトのドメインに置き換えて!
以上、既出感満載なTipsでしたが、やっぱりプラグインを使った方法が一番オールマイティに安全にスラッグを書き換えれますね!
【EC-CUBE】新規ページ追加方法 user_dataを省く 方法
【EC-CUBE】新規ページ追加方法 user_dataを省く
[ec-cube] ページ詳細設定から追加した新規ページのURLの「/user_data/」を排除する
EC-CUBE URL変更 EC-CUBE 新規に独自ページを追加 方法 ページ詳細設定 EC-CUBEのデフォルトは動的URLで作成されます,これを静的URLに変更してSEO 対策します。
【EC-CUBE2.12.0】新規ページ追加方法 user_dataを省く EC-CUBEで新規ページを作成する時、普通の場合だと管理画面から
「デザイン管理」>「PC」>「ページ詳細設定」
を選んで新しくページ(tpl)を作成します。
が、この方法で作成されたページはすべて「/user_data/」フォルダ直下に置かれURLがあまりかっこよくない感じになってしまいます。
なので今回はhttp://xxx.com/test/というURLになるようにする方法を紹介します。
手順
1:管理画面からページを新規追加
2:データベース(dtb_pagelayout)を修正
3:新規追加したページのファイルをFTPで移動
以上の3STEPでできます。超簡単です。
FTPで元からある「order」とかのファイルを見てみると「/data/class/pages/order/LC_Page_Order.php」みたいなPHPファイルを足さないといけないように見えますが別に必要ないっぽいです。
はじめにも言いましたが今回は例としてtestという新規ページを作るという前提でお話していきます。
1:管理画面からページを新規追加
まずは普通にページを新規追加します。
「デザイン管理」>「PC」>「ページ詳細設定」
から行なってください。
この時点ではファイルはデフォルトの通り「user_data」の下に作成されますが、それでOKです。
ヘッダーとフッターを共通~のチェックボックス入れるのをお忘れなく・・
2:データベース(dtb_pagelayout)を修正
次にデータベースを手動で修正します。
僕の場合はphpmyadminなのでそれを例にしていきます。
まずはサーバー管理画面からデータベース管理画面に行きます。
で左サイドバーから「dtb_pagelayout」というテーブルを探してクリック。
右側にいろいろとすでに入っているデータがでてきますね。その中から先ほど管理画面から作成したデータを見つけ出してください。
おそらく「user_data/test.php」という感じになっていると思います。
見つけたら「編集」をクリック!
以下のように3箇所を編集します。
・「/user_data/test.php」から「/test/index.php」に修正
・filenameの項目を「user_data/test」から「test/index」に修正
・update_urlの項目を「Null」(空白)に修正
(チェックボックスにチェックを入れてもOK)
例(クリックで拡大)
3:新規追加したページのファイルをFTPで移動
さきほどデータベースに設定した情報に合わせるようにFTPを使って作成されたファイルを移動します。
移動させるファイルは2つです。
/user_data/test.phpを
/test/index.phpに移動
/data/Smarty/templates/default/user_data/test.tplを
/data/Smarty/templates/default/test/index.tplに移動
もちろん必要に応じてディレクトリは新規作成してください。
以上で作業は完了です。
http://xxx.com/test/にアクセスしてきちんと表示されていればOKです。
うまく表示されないときはもう一度移動した場所とDBの変更がきちんとされてるかを確認してくださいね(・∀・)
※注意事項
・レイアウト設定は管理画面から、内容の編集はFTPから行なってください。
(内容の編集を管理画面からすると表示されなくなります。)
URLを設計する際の推奨ポイント SEO
URLを永続化させるためには、設計時から長く使えて検索エンジンが好むURLを設計しておくことが重要です。以下にポイントをまとめておきますので、設計時の参考にしてください。
URLに使用していい推奨記号は、「-(ハイフン)」と「_(アンダースコア)」
URLはすべて小文字にする
URLの長さはなるべく短くしつつ、可能であればURL中にキーワードを含める
ディレクトリの階層はなるべく浅くする
永続性さえ確保できれば、日本語URLも効果がある
番外. URLは拡張子ではなく、「/」で終える
EC-CUBE 2.13://URL [ec-cube] ページ詳細設定から追加した新規ページのURLの「/user_data/」を排除する
EC-CUBEの管理画面『デザイン管理 > PC > ページ詳細設定』で新規追加したページのURLを.htaccessで操作する。
1.「/user_data/」ディレクトリ排除
URLの「/user_data/」ディレクトリを排除するだけなら
.htaccessの記述
結果例
http://○○○○.co.jp/user_data/test.php
↓
http://○○○○.co.jp/test.php
2.任意のディレクトリ直下にあるように見せかける
URLの「/user_data/」ディレクトリを排除しつつ拡張子.phpを「/」に変えて、
任意のディレクトリ直下にある様に見せかける
.htaccessの記述
1 | RewriteEngine on |
2 | RewriteCond %{REQUEST_FILENAME} !-f |
3 | RewriteCond %{REQUEST_FILENAME} !-d |
4 | RewriteRule ^([a-z0-9\-\_\.]+)/ user_data/$1.php [L] |
結果例
http://○○○○.co.jp/user_data/test.php
↓
http://○○○○.co.jp/test/
ご注意
任意のディレクトリ直下にある様に見せかける場合には、
/products/、/cart/ 、/contact/ 、/abouts/、/order/、/guide/ 、/admin/ 等、
あらかじめ予約されているディレクトリ名は使わない様にしましょう。
また、正規表現で『 [a-z0-9-_.] 』としていますが、
これはファイル名に「半角英数字」の他に「ハイフン(-)」「アンダーバー(_)」「ドット(.)」も認識する、
という事を意味しています。
EC-CUBE 2.12 で新規ページを任意で作成
では、aboutsというページを参考に表示までの流れを追ってみます。
サイトURL/html/abouts/index.php
↓
data/class_extends/page_extends/abouts/LC_Page_Abouts_Ex.php
↓
data/class/pages/abouts/LC_Page_Abouts.php
↓
data/class_extends/page_extends/LC_Page_Ex.php
↓
data/class/pages/LC_Page.php
http://サイトURL/abouts/にアクセスすると、
data/class_extends/page_extends/abouts/LC_Page_Abouts_Ex.phpをrequireし、LC_Page_Abouts_Exクラスを呼び出します。
LC_Page_Abouts_Ex.phpは特に何もしておらず、親クラスLC_Page_Aboutsのinit(),process(),destroy()を実行しています。
以下はdata/class/pages/abouts/LC_Page_Abouts.phpの中身
<?php
/*
- This file is part of EC-CUBE
*
- Copyright© 2000-2012 LOCKON CO.,LTD. All Rights Reserved.
*
*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
*
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
*
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
// {{{ requires
require_once CLASS_EX_REALDIR . ‘page_extends/LC_Page_Ex.php’;
/**
- サイト概要のページクラス.
*
@package Page
@author LOCKON CO.,LTD.
@version $id:LC_Page_Abouts.php 15532 2007-08-31 14:39:46Z nanasess $
*/
class LC_Page_Abouts extends LC_Page_Ex {
// }}}
// {{{ functions
/**
- Page を初期化する.
*
- @return void
*/
function init() {
parent::init();
$this->tpl_page_category = ‘abouts’;
$this->tpl_title = ‘当サイトについて’;
$masterData = new SC_DB_MasterData_Ex();
$this->arrPref = $masterData->getMasterData(‘mtb_pref’);
}
/**
- Page のプロセス.
*
- @return void
*/
function process() {
parent::process();
$this->action();
$this->sendResponse();
}
/**
- Page のアクション.
*
- @return void
*/
function action() {
$this->objSiteInfo->data = SC_Helper_DB_Ex::sfGetBasisData();
$this->objSiteInfo->data[‘pref’] =
isset($this->arrPref[$this->objSiteInfo->data[‘pref’]])
? $this->arrPref[$this->objSiteInfo->data[‘pref’]] : ‘’;
}
/**
- デストラクタ.
*
- @return void
*/
function destroy() {
parent::destroy();
}
}
init()の中でテンプレートの定義をしていますね。
ここを任意に変える必要があるみたいです。
※これだけではテンプレートファイルに行き着かずエラーを吐き出していたので
ここにさらにテンプレートファイルの指定をする必要がありました。
$this->tpl_mainpage = ‘任意のフォルダ名/index.tpl’;
ファイルを作成する。
流れがわかったところで作成するファイルが見えてきましたね。
サイトURL/html/任意の名前/index.php
data/class_extends/page_extends/任意の名前/LC_Page任意の名前Ex.php
data/class/pages/任意の名前/LC_Page_任意の名前.php
data/class_extends/page_extends/LC_Page_Ex.php
data/class/pages/LC_Page.php
data/Smarty/templates/任意のテンプレート/任意の名前/index.tpl
classのファイル名は先頭大文字でもちろんclass名も同じように変えてやればおkです。
余談ですが、先頭大文字ならアンダースコアを省いてキャメル型にしたくなりますね。
管理画面から編集する
「ページも追加できてwktkしてページ編集画面行ったらさっき追加したページが一覧にないではないか。」
という方はDBのdtb_pagelayoutというテーブルに追加してやれば表示される。
INSERT INTO DB名
.dtb_pagelayout
(
device_type_id
,
page_id
,
page_name
,
url
,
filename
,
header_chk
,
footer_chk
,
edit_flg
,
author
,
description
,
keyword
,
update_url
,
create_date
,
update_date
)
VALUES (
‘10’, ‘新規ページID’, ‘ページタイトル’, ‘任意の名前/index.php’, ‘任意の名前/index’, ‘1’, ‘1’, ‘2’, NULL , NULL , NULL , NULL ,
CURRENT_TIMESTAMP , ‘0000-00-00 00:00:00’
);
こんな感じでいけた。
Eccube URL静的化完全版 商品詳細ページURL カテゴリURL最適化
EC-CUBEの静的URL生成 URL静的化完全版 商品詳細ページURL カテゴリURL最適化
EC-CUBE 2.13://URL静的化完全版 商品詳細ページURL カテゴリURL最適化 EC-CUBEのデフォルトは動的URLで作成されます,これを静的URLに変更してSEO 対策します。
URLを設計する際の推奨ポイント SEO
URLを永続化させるためには、設計時から長く使えて検索エンジンが好むURLを設計しておくことが重要です。以下にポイントをまとめておきますので、設計時の参考にしてください。
URLに使用していい推奨記号は、「-(ハイフン)」と「_(アンダースコア)」 URLはすべて小文字にする URLの長さはなるべく短くしつつ、可能であればURL中にキーワードを含める ディレクトリの階層はなるべく浅くする 永続性さえ確保できれば、日本語URLも効果がある 番外. URLは拡張子ではなく、「/」で終える
EC-CUBE 2.13://URL静的化完全版を目指す
EC-CUBEで構築したサイトは商品カテゴリ一覧ページや商品詳細ページのURLが、 「http://サーバ名/products/list.php?category_id=xxx」 「http://サーバ名/products/detail.php?product_id=xxx」 という様に、「~.php?~」とURLにクエリが付けてられている状態になります。
最近のGoogleはクエリ付きURLでも先のページをちゃんとクロールしてくれるという話しですが、 過去のSEOを知る身として、そしてURLがクエリ丸見え状態というのはちょっと恥ずかしさもあります。
何より、SEO対策というのは、どれが本当に効果が表れるかというのはとても分かりずらいものなので、 些細なことでも対策しておいて損は無いということもあり、URLの静的化はやっておいて損は無いでしょう。
何より、サイトのURLが美しくて良いです。
EC-CUBEのURL静的化の現状
Googleなどで検索するればそれらしい記事はたくさん出てきますが、 RSSやsitemap、プラグイン関係まで言及している記事が無かったので、 いきなり完全版にはならないかも知れませんが、一歩一歩進化させていこうと思います。
まず、静的化後のURLをどうするかですが、これも幾つか考えられます。
例えば、
- http://サーバ名/products/list123/
- http://サーバ名/products/list/123
- http://サーバ名/products/list123.html
と言った感じです。
これもSEO的には、ディレクトリが深くない方が良いとか、拡張子が付いていた方が良いなど諸説ありました。 現状としては、SEO的にはどれも変わりは無く、人が見たときにどう感じるかというレベルのようです。
では、「人が見たときに」とは何を考慮すべきか。 URLを見て何のページか分かりやすく、短く、ファイルの中身が何かわかりやすいことだと思います。
したがって、「http://サーバ名/products/list123.html」が一番妥当だと思われます。
具体的な施策手順
1~2は、最近のサーバーであれば設定する必要が無いものが多いはずです。 今の時代に、mod_rewriteやhtaccessが使えないサーバーであれば、移転を検討すべきでしょう。
1. mod_rewriteの有効化
まずは、「mod_rewrite」を使ったURLリライトの設定を行います。 Webサーバー(Apache)でmod_rewriteが有効になっているかを調べましょう。 httpd.confに下記設定がなされているか、もしくはサーバー会社に問い合わせましょう。 LoadModule rewrite_module modules/mod_rewrite.so[/cod]
2 .htaccessの有効化
WEBサーバーの公開フォルダに対し、「.htaccess」の有効にします。 httpd.confに下記設定を行ってください。 1 <Directory “http公開フォルダのパス”> AllowOverride All Options FollowSymLinks </Directory>
3. .htaccessにリライトを設定
EC-CUBEの公開ディレクトリルートの「.htaccess」に下記を追記してください。
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^products/detail([0-9]+).html products/detail.php?product_id=$1&%{QUERY_STRING} [L] RewriteRule ^products/list([0-9]+).html products/list.php?category_id=$1&%{QUERY_STRING} [L]
4. カテゴリーブロックテンプレートの修正
「/data/Smarty/template/default/bloc/category_tree_fork.tpl」を下記のように修正します。 27行目: <p><a href=“<!–{$smarty.const.ROOT_URLPATH}–>products/list.php?category_id=<!–{$child.category_id}–>"~ ↓
27行目: <p><a href=“<!–{$smarty.const.ROOT_URLPATH}–>products/list<!–{$child.category_id}–>.html"~
5. 商品詳細ページURLを示すパラメータ設定の変更
管理画面の「システム設定」→「パラメーター設定」を開き、 「P_DETAIL_URLPATH」という項目を下記のように変更します。
ROOT_URLPATH . “products/detail.php?product_id=”[/cod] ↓ 1ROOT_URLPATH . “products/detail”[/cod]
6. おすすめ商品ブロックテンプレートの修正
「/data/Smarty/template/default/bloc/recommend.tpl」を下記のように修正します。 1 32行目: <a href=“<!–{$smarty.const.P_DETAIL_URLPATH}–><!–{$arrProduct.product_id|u}–>”> 38行目: <a href=“<!–{$smarty.const.P_DETAIL_URLPATH}–><!–{$arrProduct.product_id|u}–>”>~ ↓ 32行目: <a href=“<!–{$smarty.const.P_DETAIL_URLPATH}–><!–{$arrProduct.product_id|u}–>.html”> 38行目: <a href=“<!–{$smarty.const.P_DETAIL_URLPATH}–><!–{$arrProduct.product_id|u}–>.html”>~
7. 商品一覧テンプレートの修正
「/data/Smarty/template/default/products/list.tpl」を下記のように修正します。 152行目: <a href=“<!–{$smarty.const.P_DETAIL_URLPATH}–><!–{$arrProduct.product_id|u}–>”> 171行目: <a href=“<!–{$smarty.const.P_DETAIL_URLPATH}–><!–{$arrProduct.product_id|u}–>”>~ 193行目: <a href=“<!–{$smarty.const.P_DETAIL_URLPATH}–><!–{$arrProduct.product_id|u}–>”>~ ↓ 152行目: <a href=“<!–{$smarty.const.P_DETAIL_URLPATH}–><!–{$arrProduct.product_id|u}–>.html”> 171行目: <a href=“<!–{$smarty.const.P_DETAIL_URLPATH}–><!–{$arrProduct.product_id|u}–>.html”>~ 193行目: <a href=“<!–{$smarty.const.P_DETAIL_URLPATH}–><!–{$arrProduct.product_id|u}–>.html”>~
8. 商品詳細テンプレートの修正
「/data/Smarty/template/default/products/detail.tpl」を下記のように修正します。 172行目: <a href=“<!–{$smarty.const.ROOT_URLPATH}–>products/list.php?category_id=<!–{$arrRelativeCat[r][s].category_id}–>”>~ 355行目: <a href=“<!–{$smarty.const.P_DETAIL_URLPATH}–><!–{$arrItem.product_id|u}–>”> 361行目: <h3><a href=“<!–{$smarty.const.P_DETAIL_URLPATH}–><!–{$arrItem.product_id|u}–>”>~ ↓ 172行目: <a href=“<!–{$smarty.const.ROOT_URLPATH}–>products/list<!–{$arrRelativeCat[r][s].category_id}–>.html”>~ 355行目: <a href=“<!–{$smarty.const.P_DETAIL_URLPATH}–><!–{$arrItem.product_id|u}–>.html”> 361行目: <h3><a href=“<!–{$smarty.const.P_DETAIL_URLPATH}–><!–{$arrItem.product_id|u}–>.html”>~
9. RSSテンプレートの修正
「/data/Smarty/template/default/rss/products.tpl」を下記のように修正します。 33行目: <link><!–{$smarty.const.HTTP_URL}–>products/detail.php?product_id=<!–{$arrProduct.product_id}–></link> 36行目: <a href=“<!–{$smarty.const.HTTP_URL}–>products/detail.php?product_id=<!–{$arrProduct.product_id}–>” rel=“product”> 39行目: <div class=“product-title”><a href=“<!–{$smarty.const.HTTP_URL}–>products/detail.php?product_id=<!–{$arrProduct.product_id}–>” rel=“product”>~ ↓ 33行目: <link><!–{$smarty.const.HTTP_URL}–>products/detail<!–{$arrProduct.product_id}–>.html</link> 36行目: <a href=“<!–{$smarty.const.HTTP_URL}–>products/detail<!–{$arrProduct.product_id}–>.html” rel=“product”> 39行目: <div class=“product-title”><a href=“<!–{$smarty.const.HTTP_URL}–>products/detail<!–{$arrProduct.product_id}–>.html” rel=“product”>~
10. sitemap.phpの修正
「/data/class_extends/page_extends/LC_page_Sitemap_Ex.php」に下記追記します。
function process() { parent::process(); } } ↓ function process() { parent::process(); }
/* * 全ての商品一覧ページを取得する. * * @return array 検索エンジンからアクセス可能な商品一覧ページの情報 / public function getAllProducts() { // XXX: 商品登録の無いカテゴリは除外する方が良い気もする $objQuery = SC_Query_Ex::getSingletonInstance(); $sql = ‘SELECT category_id FROM dtb_category WHERE del_flg = 0’; $result = $objQuery->getAll($sql);
$arrRet = array(); foreach ($result as $row) { // :TODO: カテゴリの最終更新日を取得できるようにする
$arrPage[‘url’] = HTTP_URL . ‘products/list’ . $row[‘category_id’] . “.html”; $arrRet = $arrPage; }
return $arrRet; }
/* * 全ての商品詳細ページを取得する. * * @return array 検索エンジンからアクセス可能な商品詳細ページの情報 / public function getAllDetail() { $objQuery = SC_Query_Ex::getSingletonInstance(); $sql = ‘SELECT product_id, update_date FROM dtb_products WHERE ’ . SC_Product_Ex::getProductDispConditions(); $result = $objQuery->getAll($sql);
$arrRet = array(); foreach ($result as $row) { $arrPage[‘update_date’] = $row[‘update_date’];
$arrPage[‘url’] = HTTP_URL . substr(P_DETAIL_URLPATH, strlen(ROOT_URLPATH)) . $row[‘product_id’] . “.html”; $arrRet = $arrPage; }
return $arrRet; } }
あとは、マイページ、お気に入り、スマホ・フューチャーフォンの対策も必要になるかと思いますが。
(4)以下のPC用ファイルに「.html」を追記する。 ■data/Smarty/templates/default/products/list.tpl(3カ所) ■data/Smarty/templates/default/frontparts/bloc/recommend.tpl(2カ所) <!–{$arrProduct.product_id|u}–> ↓(変更) <!–{$arrProduct.product_id|u}–><!–{if $smarty.const.STATIC_URL == true}–>.html<!–{/if}–> ■data/Smarty/templates/default/products/detail.tpl(「関連商品」の2カ所) <!–{$arrItem.product_id|u}–> ↓(変更) <!–{$arrItem.product_id|u}–><!–{if $smarty.const.STATIC_URL == true}–>.html<!–{/if}–> (5)スマートフォン用ファイルに「.html」を追記する。 ■data/Smarty/templates/sphone/products/list.tpl(1カ所) <!–{$arrProduct.product_id|u}–> ↓(変更) <!–{$arrProduct.product_id|u}–><!–{if $smarty.const.STATIC_URL == true}–>.html<!–{/if}–> ■data/Smarty/templates/sphone/frontparts/bloc/recommend.tpl(1カ所) <!–{$arrBestProducts[cnt].product_id|u}–> ↓(変更) <!–{$arrBestProducts[cnt].product_id|u}–><!–{if $smarty.const.STATIC_URL == true}–>.html<!–{/if}–> ■data/Smarty/templates/sphone/products/detail.tpl(「その他おすすめ商品」の1カ所) <!–{$arrRecommend[cnt].product_id|u}–> ↓(変更) <!–{$arrRecommend[cnt].product_id|u}–><!–{if $smarty.const.STATIC_URL == true}–>.html<!–{/if}–> (6)MYページのhistory.tpl,favorite.tplに適用 ■data/Smarty/templates/default/mypage/history.tpl(1カ所) ■data/Smarty/templates/sphone/mypage/history.tpl(1カ所) <!–{$orderDetail.product_id|u}–> ↓(変更) <!–{$orderDetail.product_id|u}–><!–{if $smarty.const.STATIC_URL == true}–>.html<!–{/if}–> ■data/Smarty/templates/default/mypage/favorite.tpl(2カ所) ■data/Smarty/templates/sphone/mypage/favorite.tpl(2カ所) <!–{$product_id|u}–> ↓(変更) <!–{$product_id|u}–><!–{if $smarty.const.STATIC_URL == true}–>.html<!–{/if}–>
WordPress プラグインなしでパンくずリストを表示
WordPress プラグインなしでパンくずリストを表示
WordPressで記事ページにパンくずリストを表示する方法は、プラグインなど様々な方法があります。
いろんな方法がありますが、テンプレートタグを使えば、かなり簡単に表示させる事ができます。
最近のWordPress用ブログテンプレートは、いわしブログでも使用しているStinger3を始め、最初からパンくずリスト出力が標準装備されるようになってきました。
でも、企業向けのWordPressサイトを一から作る場合は、やはり自前でパンくずリストを設置する必要があります。WordPressにはパンくずリスト表示用プラグインがたくさんありますが、今回はプラグインを使わずにパンくずリストを設置する方法を紹介します。
パンくずリストとは?
パンくずリストとは、webサイトやブログ内での位置を視覚的にわかりやすくするために、滞在中のページを階層順にリスト化して表示したものです。このブログにもタイトルの上にパンくずリストが表示されていますね。
規模の大きいサイトだと、現在どの階層のページを見ているのかがわかりにくいのですが、パンくずリストがあれば、サイト内の現在位置が直感でわかるようになります。
また、パンくずリストは、ユーザビリティの向上だけではなく、SEOにも重要な役割を果たしています。
検索エンジンにサイトの構造を正しく認識させることは、SEOの重要なポイントの一つなのですが、パンくずリストを表示させることで、検索エンジンにサイトの階層や構造を正確に把握させることができます。
ちなみに、「パンくず」という名称の由来ですが、童話「ヘンゼルとグレーテル」の中で、主人公が森の中で迷わないように、パンくずを落としながら歩いたというお話から来ています。英語では「breadcrumbs」と表記します。
プラグインなしでパンくずリストを設定
WordPressには、パンくずリストを表示するためのプラグインがたくさんありますが、今回はプラグインを使わずにパンくずリストを表示させることにしました。
パンくずリスト表示コードは、bl6.jpさんの記事から引用させていただきました。ありがとうございます。
パンくずリスト表示コード functions.php記載用
まずはfunctions.phpに以下のコードを記載します。このコードは投稿ページだけでなく、カテゴリや固定ページにも対応、固定ページが親子構造になっている場合でもパンくずリストを出力させることができます。
また、microdata形式による構造化マークアップにも対応しています。自動的にmicrodataコードがパンくずと共に生成されるので、検索結果にパンくずを表示させることができます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
// パンくずリスト
function breadcrumb(){
global $post;
$str ='';
if(!is_home()&&!is_admin()){
$str.= '<div id="breadcrumb" class="cf"><div itemscope itemtype="http://data-vocabulary.org/Breadcrumb">';
$str.= '<a href="'. home_url() .'" itemprop="url"><span itemprop="title">ホーム</span></a> ></div>';
if(is_category()) {
$cat = get_queried_object();
if($cat -> parent != 0){
$ancestors = array_reverse(get_ancestors( $cat -> cat_ID, 'category' ));
foreach($ancestors as $ancestor){
$str.='<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="'. get_category_link($ancestor) .'" itemprop="url"><span itemprop="title">'. get_cat_name($ancestor) .'</span></a> ></div>';
}
}
$str.='<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="'. get_category_link($cat -> term_id). '" itemprop="url"><span itemprop="title">'. $cat-> cat_name . '</span></a></div>';
} elseif(is_page()){
if($post -> post_parent != 0 ){
$ancestors = array_reverse(get_post_ancestors( $post->ID ));
foreach($ancestors as $ancestor){
$str.='<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="'. get_permalink($ancestor).'" itemprop="url"><span itemprop="title">'. get_the_title($ancestor) .'</span></a></div>';
}
}
} elseif(is_single()){
$categories = get_the_category($post->ID);
$cat = $categories[0];
if($cat -> parent != 0){
$ancestors = array_reverse(get_ancestors( $cat -> cat_ID, 'category' ));
foreach($ancestors as $ancestor){
$str.='<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="'. get_category_link($ancestor).'" itemprop="url"><span itemprop="title">'. get_cat_name($ancestor). '</span></a> ></div>';
}
}
$str.='<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="'. get_category_link($cat -> term_id). '" itemprop="url"><span itemprop="title">'. $cat-> cat_name . '</span></a></div>';
} else{
$str.='<div>'. wp_title('', false) .'</div>';
}
$str.='</div>';
}
echo $str;
}
|
パンくずリスト表示コード single.php page.php記載用
続いて、パンくずリストを表示させたい場所に以下の呼び出し用コードを貼り付けてください。
1
|
<?php breadcrumb(); ?>
|
ダッシュボード左側のメニューから「外観」→「テーマ編集」と進み、右側に表示されるテンプレートの中からsingle.php・page.phpを選択してコードを貼り付けます。パンくずリストはそのページのタイトル前後に表示させるのが一般的ですね。
また、archive.phpに貼り付けると、カテゴリや月別アーカイブでもパンくずリストを表示させることができます。カテゴリやアーカイブはテーマによって該当するテンプレートが違うので注意してくださいね。
Googleウェブマスターツール 構造化データテストツール
パンくずリストがきちんと認識されているかどうかは、Googleウェブマスターツールの構造化データテストツールにURLを入力することで確認できます。
Google Structured Data Testing Tool
URLを入力して「プレビュー」をクリックしてください。このようにパンくずが表示されていれば、microdataコードがきちんと認識されています。
「抽出された構造化データ」にも、ちゃんとパンくずが表示されていますね。
WordPress パンくずリスト設定プラグイン
WordPressには、パンくずリストを表示するためのプラグインがたくさんあります。「wordpress プラグイン パンくず」で検索してみると、Breadcrumb NavXTというプラグインの情報がたくさん出てきました。パンくずリスト表示ならこれが定番のようです。
プラグインを使ってパンくずリストを表示させたい方は、この記事がオススメです。 https://wordpress.org/plugins/breadcrumb-navxt/
EccubeレスポンシブWEBデザインテンプレート ピンク系0071
ECCUBE2.12の秀逸なレスポンシブWebデザイン
最近よく耳にするレスポンシブデザインテンプレートのプラグインです! レスポンシブにしたいんだけど予算が・・・という方や、デザインは自分でしたいけど基本的なレイアウトはお願いしたいという方にお勧めです。 実際に見て、ブラウザの幅を縮めたり広げたりしてみてください。
レディースファッション、レギンスの服装のネットショップです。
買い物しやすいデザイン、商品の魅力が伝わるデザインで構築されています。
お客様が買い物しやすい機能、在庫管理等のバックヤード機能もカスタマイズにより追加されています。
【主なカスタマイズ内容】
・商品レコメンド機能
・StockGearとの在庫連動機能
・基幹システムとのデータ連携
・代金引換指定不可商品判別機能
・商品毎の問い合わせのボタンの設置
・注文ステータス変更用 CSV 取り込み機能
・商品詳細ページでの規格別在庫数表示機能 対応EC-CUBEバージョン :2.12.2~2.12.6
Welcartのテンプレートをカスタマイズする方法
Welcartのテンプレートをカスタマイズする方法
こ こからはWelcartのカスタマイズについてまとめていきます。Welcartのテンプレートをカスタマイズする方法。まずはWelcartの基本的な 知識をまとめていきます。Wordpressのインストール方法やサーバー選び、Welcartのカスタマイズ方法について紹介します。
Welcartカスタマイズのリソース
Welcartの公式ドキュメント
テンプレートをカスタマイズするためのリソースとしてドキュメントは欠かせないものですが、公式サイトには非常にわかりやすいリファレンスがまとめられています。
基本的にはこちらを参照しながらテーマのカスタマイズを行っていきます。
テンプレートカスタマイズでわからないこと
公式リファレンスを見ても、どうしてもわからないことがでてくる場合がありますが、フォーラムを利用することで問題が解決するかもしれません。
開発は現在も続いており、質問への回答もされているようなので利用しましょう。
Welcartの管理画面の使い方
テーマのカスタマイズではなく、管理画面の使い方(商品登録や初期設定など)を知りたい場合もオンラインドキュメントが使えますが、便利な書籍も出版されています。
Welcartのカスタマイズ方法
テンプレート(テーマ)をカスタマイズするには?
Welcartにはデフォルトテーマが用意されており、こちらをそのまま使っても良いのですが、やっぱりオリジナルデザインにカスタマイズしたいです。
Welcartのテーマのカスタマイズ方法は基本的にWordpressと同じ。Wordpressに用意されたタグも使用できます。
しかし、ショップのカート機能や画面遷移の仕組みなど、ゼロからショップを構築するのは結構大変。そこで、最初はデフォルトテンプレートの構造はそのままにしておき、CSSのスタイルを修正していくことをおすすめします。
この場合修正する箇所はstyle.cssのみでOK。ただし、このファイルの中身を書き換えてしまうと元に戻せなくなるので、バックアップをとっておくか、custom.cssなどを作って上書きするようにしましょう。
具体的なカスタマイズについては次回以降にまとめていきたいと思います。
Welcartテンプレートカスタマイズまとめ
このサイトではWelcartのテンプレート(テーマ)のカスタマイズ方法をまとめています。この記事と合わせて是非チェックしてみて下さい。
デザインのカスタマイズ
- Welcart デフォルトテーマについて : 2014年1月23日
- ヘッダーのカスタマイズ : 2014年1月24日
- フッターのカスタマイズ : 2014年1月24日
- ウィジェットのカスタマイズ : 2014年1月23日
- 商品詳細ページのカスタマイズ : 2011年2月12日
- 会員ページのカスタマイズ : 2014年1月23日
- member_form.php/新規会員登録画面 : 2011年2月12日
- completion.php/会員登録送信完了画面 : 2011年2月12日
- login.php/ログイン画面 : 2011年2月12日
- lostpassword.php/新しいパスワード取得画面 : 2011年2月12日
- changepassword.php/新しいパスワード設定画面 : 2011年2月12日
- member.php/会員情報確認画面 : 2011年2月12日
- カートのカスタマイズ : 2014年1月24日
- cart.php/カートのカスタマイズ : 2014年1月24日
- customer_info.php/お客様情報入力画面 : 2014年1月24日
- delivery_info.php/発送・支払い方法入力画面 : 2014年1月24日
- confirm.php/内容確認画面 : 2014年1月24日
- completion.php/購入完了画面 : 2014年1月24日
- error.php/エラー画面 : 2014年1月24日
- 検索ページのカスタマイズ : 2011年2月12日
- Welcart テンプレートタグ&関数一覧 : 2011年2月12日
Welcart デフォルトテーマについて
Welcart デフォルトテーマテンプレートファイル一覧
- archive.php 表示するデータが商品以外だった場合に、このテンプレートを使用します。
- footer.php フッターテンプレート
- header.php ヘッダーテンプレート
- home.php ホームページテンプレート。サイトのトップページになります。
- index.php 基本テンプレート。該当するテンプレートが無い場合に使用されます。
- inquiry.php ご相談・お問い合わせテンプレート。問い合わせフォームを開きます。
- page.php ページテンプレート。特定のページが要求されたときに使用します。
- sidebar.php サイドバーテンプレート
- single.php 単体記事を表示するためのテンプレート。
ページデザイン変更の注意点
ページのデザインは自由に変更していただいてかまいません。 上記テンプレートの変更はWelcart デフォルトテーマの「style.css」にて変更することができます。 また、ショッピングカート・会員情報ページ・商品詳細ページのスタイルを修正することもできます。 プラグインフォルダ内の「usc-e-shop>css>usces_cart.css」を、テーマフォルダにコピーしてから編集してください。 その際「usces_cart.css」というファイル名を変えないでください。
プラグイン内にある「usces_cart.css」は直接編集しないようにしてください。 バージョンアップされるごとに上書きされます。
WordPressのSEOを強化する!プロが教える7つの設定
WordPressのSEOを強化する!プロが教える7つの設定
WordPressのSEOを強化するための7つのポイント
ポイント1 「noindex,follow」を上手に使い、低品質評価のリスクを回避する
Pandaアップデートは、低品質なサイトの掲載順位を下げ、同時に、良質なサイトの掲載順位をより適切に評価します。 ―途中省略― Googleは、検索結果からユーザーが良質なサイトを見つけやすくすることに特に取り組んでいます。 Pandaアップデートによって、多くの良質なサイトの掲載順位が改善されました。 引用元:良質なサイトを作るためのアドバイス(Googleウェブマスター向け公式ブログ)
●Googlebot 「ふうっ、今日もたくさんのサイトをインデックスしたよ。 Twitterとかのソーシャルメディアが流行ってからというもの、インデックスするサイトが一気に増えて、とても忙しくなったよ」 ●Googlebot 「でも、よく考えたら、中身の薄い低品質なコンテンツをインデックスするのって、無駄な気がするなあ。 いくら僕がロボットだからといっても、人遣い・・・じゃなかった、ロボット遣いが荒い気がする・・・」 ●Googlebot 「あんな低品質なコンテンツを上位表示させてしまったら、検索エンジンとしての評価も下がるだろうし・・・」 ●Googlebot 「そもそも、低品質なコンテンツってユーザーに見せる価値がないよね・・・」 ●Googlebot 「そして、そんなコンテンツをインデックスすることで、僕の貴重な時間が奪われている!」 ●Googlebot 「ムキーッ!低品質なコンテンツなんて嫌いだー!! 僕を騙そうとするWebスパマーも嫌いだー!! そうだ!インデックスしたあとで、そのサイトの評価を落としてもらおう!」
かくして、中身の薄い低品質なコンテンツたちはGoogleから嫌われるようになったのでした。 めでたし、めでたし。
※もし、「noindex,nofollow」としてしまうと、ページがインデックスされないだけでなく、リンクも辿ってもらえなくなりますので、注意してください。
「noindex,follow」を入れておいた方が良いページ
「All in One SEO Pack」というプラグインを使い、「noindex,follow」を設定
1、「All in One SEO Pack」をインストール
まずは「All in One SEO Pack」のインストールです。 WordPressの管理画面のサイドバーの「プラグイン」から、「新規追加」と辿り、そのページで「All in One SEO Pack」と検索すれば見つかります。 「今すぐインストール」をクリックして、管理画面上でインストール。2、サイドバーに表示されたメニューから「General Settings」をクリック
インストールが完了すると、サイドバーに「All in One SEO Pack」の設定メニューが表示されますので、「General Settings」をクリックし、設定画面へ移動します。3、主要なページにまとめて「noindex,follow」を設定
先ほどお教えした、「noindex,follow」を入れた方が良いページに対して、noindexの設定をおこないます。 設定はとても簡単。以下のようにチェックを入れるだけです。 「カテゴリ」ページに関しては、「noindex,follow」を入れなくて良いでしょう。 もし、カテゴリページをしっかりインデックスさせたいのであれば、カテゴリページに、カテゴリの「抜粋」など、カテゴリページ独自のコンテンツを表示させておいた方が良いです。そのあたりはテンプレートのカスタマイズで対応します。4、必要であれば、個別記事に対しても「noindex,follow」を設定
個別の記事に対して「noindex,follow」を設定したい場合は、記事の投稿画面から設定できます。 投稿もしくは編集画面に移動し、上部にある「表示オプション」を開き、「All in One SEO Pack」にチェックを入れた後、画面下部にある設定エリアから、「Robots Meta NOINDEX」にチェックを入れるようにしてください。 「表示オプション」の「All in One SEO Pack」にチェックを入れた後、画面下部にある設定エリアから、「Robots Meta NOINDEX」にチェックを入れる。これで、noindex周りの設定は完了です。 通常、個別の記事に対して「noindex,follow」を設定するケースはあまりないと思いますが、たとえば、記事としては中身が薄い「休暇のお知らせ」などの、ちょっとしたお知らせなどには、入れておいても良いかもしれません。 また、あなたが複数のネットショップを運営しているとして、まったく同じ「お客様の声ページ」を複数のサイトで掲載する時も、「noindex,follow」を使うことで、重複コンテンツ判定から逃れることができます。 とはいえ、Googleは賢いので、理由のはっきりした重複コンテンツであれば、サイトの評価が下がるケースは少ないのですが、万が一のことを考え、「noindex,follow」を使える体制を準備しておくのは良いでしょう。 例えば、この「noindex,follow」を使っている事例としては、ウェブライダーがプロデュースしている「薬剤師求人プレミア」というサイトが参考になると思います。 こちらの求人サイトには、3万件近い求人情報が登録されていますが、求人情報というものは、どうしても他社と似通ってしまうもの。 個別の求人情報でGoogle検索すると、まったく同じ内容のサイトがたくさんヒットしますので、検索エンジンを使うユーザーにとっては有益とはいえない可能性があります。 そのため、このページでは、あえて「noindex,follow」を積極的に使い、他のサイトと被りそうな求人情報に関しては基本的にnoindex。薬剤師求人プレミアのオリジナルコンテンツのみを検索結果に表示させるようにしています。 それにより、ユーザーにも検索エンジンにも配慮したサイトになっています。 こういった考え方は、従来までの「たくさんページをインデックスさせておけば、数打ちゃ当たるだろう」という考えとは真逆をいくものです。 確かに、ロングテールを意識したサイトにおいては、たくさんのページをインデックスしてもらうことは重要ですが、これからのSEOでは、「評価対象のコンテンツを絞る」という考え方が重要になるのです。 どちらにしても、大事なのは、「noindex,follow」を使わなくても済むような、濃いコンテンツを発信することです。 そのサイトにしかない、オリジナリティ要素の高い情報やコンテンツを発信し続ければ、Googleからの評価も高くなるでしょう。
捕捉:TOPページ専用のタイトルを設定しておく
先程の「All in One SEO Pack」の設定で捕捉です。 「All in One SEO Pack」では、ホーム画面(TOPページ)のタイトル情報を個別に設定することができます。 これを設定しておくことで、TOPページと内部ページとの差別化が可能ですので、できれば設定しておきましょう。 ちなみに、「キーワード」という部分は、実際のソースの「meta keywords」の中に当たる部分ですが、Googleは「meta keywords」の情報を評価しませんので、空けておいても構いません。 また、WordPressでは、「設定」→「一般設定」という画面でもタイトルの設定が可能ですが、ここで設定するタイトルは、TOPページ以外のページに共通で設定されるタイトルだと考えて下さい。 例えば、「沈黙のWebマーケティング」の場合、下記のようなタイトル構造になっています。 こうすることで、TOPページと内部ページとの差別化が可能な他、各ページのタイトルの文字数を調整することもできます。 (現在は、Googleの仕様変更により、全角28文字以内のタイトルを付けることが良いとされています。※環境によっては30文字まで表示されることがあります)ポイント2 パーマリンクの設定以上に、「構造化マークアップ」を意識する
「パンくずリスト」を入れておくことが重要な理由
パンくず情報をウェブページの本文でマークアップすると、Googleではパンくず情報を識別し、その情報を基にページの情報を認識して、検索結果に表示できます。 引用元:リッチスニペット - パンくずリスト(ウェブマスターツール ヘルプ)
<div id="breadcrumbs"> <ol> <li class="first" itemscope="itemscope" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="http://www.cpi.ad.jp/bourne" itemprop="url"><span itemprop="title">沈黙のWebマーケティング TOP</span></a></li> <li itemscope="itemscope" itemtype="http://data-vocabulary.org/Breadcrumb"><a href="http://www.cpi.ad.jp/bourne/category/story/" title="本編ストーリー の全投稿を表示" rel="category tag" itemprop="url"><span itemprop="title">本編ストーリー</span></a></li> <li itemscope="itemscope" itemtype="http://data-vocabulary.org/Breadcrumb"><span itemprop="title">夜明けのSEOペナルティ解除</span></li> </ol> </div>
日本語URL?半角英数字URL?
ポイント3 記事の最後には、同じブログ内の「関連記事」へのリンクを入れる
・・・と、思わず、内部リンクのことについて熱く語ってしまいましたが、この考え方を実際のサイト運営に照らし合わせると、例えば、関連ページへのリンクの張り方も変わってくると思います。 例えば、以下の例を見てください。 この例の場合、「Webマーケティング」に関する記事から、「SEO」「文章作成ノウハウ」「ダイエット」に関する記事へリンクを張ろうとしていますが、普通に考えると、「Webマーケティング」に関する記事から「ダイエット」に関する記事へリンクを張るのは変ですよね。 ですので、「諸事情により、そのページへトラフィックを送らなければならない・・・」という状況以外では、関連しないページへはリンクを張らない方が良いでしょう。 続いて、もう一つ例をお見せします。 この例では、「Webマーケティングに使える心理学」に関する記事から、「コンバージョンアップにつながる文章術」「開封率の高いメルマガ作成ノウハウ」「検索エンジンの仕組みを学ぶ」といった3つの記事へのリンクを張ろうとしています。 先程のダイエットの事例に比べると、どの記事も関連性は高そうに見えます。 ですが、シビアに考えると、「Webマーケティングに使える心理学」から、最後の「検索エンジンの仕組みを学ぶ」という記事へはリンクを張らない方が良いかもしれません。 確かに、「検索エンジンの仕組みを学ぶ」ことは、SEOの強化につながり、広義的にはWebマーケティングの強化につながるのですが、「Webマーケティングに使える心理学」というタイトルとの関連性を考えると、少々遠回りな気がします。 ですので、こういう「関連性がありそうだけど、うーん・・・」という記事に対しても、あえてリンクを張らなくても良いのです。 但し、そのリンク同士の関連性は、そのリンクが設置されたコンテンツ(文章)の内容にも影響されます。 文章の流れ上、リンクを張る必然性が出てきたのであれば、自信を持って張るようにしましょう。 だからこそ、文章をしっかり書くことが大事なのです。
関連リンクを張るなら、記事の最後が良いと思う理由
WordPress上で関連リンクを設定するなら、「プラグインによる自動埋め込み」より、「手動埋め込み」がオススメ
「カスタムフィールド」を使って関連記事リンクを手動で埋め込む一例
カスタムフィールドを呼び出すための、もっともシンプルな記述は以下の通りです。<?php echo post_custom('フィールド名'); ?>
ポイント4 引用部分に「引用タグ」を使い、オリジナルコンテンツと引用との線引きをする
パンくず情報をウェブページの本文でマークアップすると、Googleではパンくず情報を識別し、その情報を基にページの情報を認識して、検索結果に表示できます。 引用元:リッチスニペット - パンくずリスト(ウェブマスターツール ヘルプ)
<blockquote> <p class="b"> パンくず情報をウェブページの本文でマークアップすると、Googleではパンくず情報を識別し、その情報を基にページの情報を認識して、検索結果に表示できます。</p> <p class="al-r m40-t">引用元:<a href="https://support.google.com/webmasters/answer/185417?hl=ja" target="_blank">リッチスニペット - パンくずリスト(ウェブマスターツール ヘルプ)</a></p> </blockquote>
ポイント5 「キャッシュ系プラグイン」を使い、サーバー負荷を下げ、拡散に備える
ソーシャルメディアから瞬間的なアクセスが発生すると、サーバーによっては「503 Service Unavailable」「Service Temporarily Unavailable」といった、通称「503エラー」が発生する場合があります。 この503エラーが発生するメカニズムに関しては、第一回の「503エラーを防ぐ!Web屋が知っておくべき503エラーの原因と対処」というコラ ムでも詳しく解説しましたが、簡単にいえば、「サーバースペックの低さ」と「WordPresss側の負荷対策が不十分」であることが原因です。 現在、Googleでは、「ページの読み込みスピード」も検索順位決定の一要因としていますので、ページの表示が重くなると、Googleからの評価も下がってしまいます。 そこで、WordPressでは、「キャッシュ」と呼ばれる技術を積極的に使う必要が出てきます。 「キャッシュ」については、このコラムの第一回で次のように解説しました。
データベースへ頻繁にアクセスするようなWebサイトは、「キャッシュ」と呼ばれる技術を用いて、セッションを減らすことが必要になります。 キャッシュとは、簡単にいえば、データベースの呼び出し回数を減らすために、本来は動的であるコンテンツを「静的」なコンテンツにすることです。 引用元:503エラーを防ぐ!Web屋が知っておくべき503エラーの原因と対処
ただ、WordPressを運用し続けていると、キャッシュだけでは対応できない「サーバースペックの壁」にぶち当たることがあります。 例えば、先程も取り上げた、「503エラー」を完全に防ぐためには、そもそも、サーバー側の同時接続数の壁を越えなければなりません。 究極的には、共用サーバーではなく、専用サーバーといった同時接続数に余裕のあるサーバーを選ぶことになるのですが、もし、キャッシュ化しても重いという場合には、サーバーの移転も検討してください。 共用サーバーでもピンからキリまであります。 このコラムの第二回では、Web集客に強いサーバーの選び方を解説していますので、ぜひチェックしておいてください。 失敗しないサーバーの選び方!正しいレンタルサーバー比較のコツ
ポイント6 「Google XML Sitemaps」を使い、Googleにサイトマップ送信をする
ステップ1 通知する検索エンジンを選択します(普通は3つすべてにチェック)
ステップ2 もし、WordPress以外で作成したページをサイトマップに含める場合は、下記から追加
ステップ3 投稿の優先順位の計算方法を選択します(ここはチェックしなくても大丈夫でしょう)
ステップ4 サイトマップに含めるページを選択します。noindex対象にしているページは含めなくて良いでしょう
ステップ5 サイトマップに含めたくないカテゴリや記事があれば、ここで指定します
ステップ6 更新頻度を設定します。更新の多いTOPページなどは「毎日」にしておくと良いでしょう
ステップ7 クローラーに特に優先的にクロールして欲しいページがあれば、10段階(0.1~1)までの間で指定します
ポイント7 「脆弱性をカバーする運用」をおこなう
もし、あなたがお使いのWordPressが誰かに乗っ取られ、「マルウェア」と呼ばれる悪意あるソフトウェアへ誘導される「踏み台」になってしまうと、Googleから警告が届き、サイトの評価も落ち、SEOに大きな影響が出ます。 (SEOに影響が出る以前に、ビジネスにおける信頼度に大きな影響がでますが・・・) そのため、「脆弱性をカバーする運用」を常に心に留めておきましょう。 WordPressの安全性を高めるためのノウハウが「WordPress Codex 日本語版」にまとめられていますので、また確認しておくようにしてください。
まとめ
Wordpressテンプレートのカスタマイズ photoshopvip のコピー
Wordpressテンプレートのカスタマイズ photoshopvip のコピー
WordPress (ワードプレス) は、オープンソースのブログ/CMS プラットフォームです。セマンティック Web、コードやデザインの美しさ、Web 標準、ユーザビリティなどを意識して開発されており、無料でダウンロードして使うことができます。
WordPress を使って、思い通りにカスタマイズしたホームページ
最新版のWordPressでお客様指定のサイト真似して、Wordpressテンプレートのカスタマイズ!Wordpressテンプレートのカスタマイズ photoshopvip のコピー
PhotoshopVIP とは Photoshopに関する無料素材や、最新ニュース、チュートリアルをいち早くお届けする新感覚のデザインブログメディアです。Wordpressで構築、
機能とテンプレートを分析して、完全のコピー出来る上に、
SEOの方もっと完璧にして WordPressのSEOを強化するための各種設定のノウハウ WordPress テンプレートWordPress テーマ
BLUE STYLEのカスタマイズ WordPressテンプレート 制作
BLUE STYLEのカスタマイズ WordPressテンプレート制作
Eccubeで構築したBLUE STYLEをWordpressのホームページに変更の要求。 BLUE STYLEは、EC-CUBE や baseCMS などのオープンソースを主に使った格安サイト構築サービスを展開しています。 WordPressテンプレートのカスタマイズ後、WordpressのショッピングカートプラグインWelcartを利用して、ちゃんとショッピング機能を持っています。機能には、 Welcartのウィークポイント
重量計算による送料設定が出来ない 運送会社とのデータ提携が出来ない メルマガ機能がない(MailChimpなどで可) レビュー機能がない(プラグイン:これとかこれで対応可) カスタマイズ情報が少ない しかし、 BLUE STYLEよりSEOの方がもっと上。 という、個人事業主や中小企業に向いていると思います。
ECサイト構築のためのプラグインソフト「Welcart」を無料でご提供!
対応Wordpressバージョン :WordPress 4.2.2
Joomla のKunenaフォーラム機能 テンプレートデザインadobi.org
Joomla のKunenaフォーラム機能 テンプレートデザインadobi.org
Joomla のKunenaフォーラム機能 テンプレートデザインadobi.org
Joomla のKunenaフォーラム機能を持ってホームページ制作。Joomla! 日本語フォーラム。
Adobe アドビ illustrator、Photoshop、Acrobat、Dreamweaverなど活用総合ガイド:アドビソフトのガイド、ビデオチュートリアル、Adobe求人情報や、最新情報を集めて、よくある質問FAQサポートセンター!
http://www.adobi.org/community.html
対応Joomlaバージョン :Joomla! 3.4.1