SEO対策 プログラミング

EC-CUBE4内にWordPressを設置(共存)する方法

EC-CUBE4 PHP Symfony Twig WordPress
EC-CUBE4内にWordPressを設置(共存)する方法
今回使用したバージョン

EC-CUBE4.0.5

WordPress5.6

※EC-CUBE4、WordPressのカスタマイズは自己責任でお願いします。また、現在稼働中のサイトで試す際には、必ずバックアップを取ってから行なうようにしてください。

 

EC-CUBE4とは

ネットショップを作るとなれば、様々なサービスが出回っていますが、自社運営をするとなればCMSを活用したものが多いでしょう。その中でも良く候補として挙げられるのがEC-CUBE4です。

 

ただ、せっかく自社運営のネットショップを作るのであれば、それなりに様々な機能が欲しくなりますよね。そこで今回はもう一つの有名どころであるWordPressとの共存方法についてご紹介します。

 

WordPressとの共存

WordPressの主な役割はブログCMSです。自社サイトやプラグインによってはネットショップとしても活用することができますが、セキュリティ面からもネットショップ単体の機能として見ればEC-CUBE4に軍配が上がります。

しかし、ブログ機能としてはやはり優秀なため、その役割は持たせるべくEC-CUBE4内設置して共存させるというのが今回の大きな目的です。同一ドメイン化で管理することでSEO対策を意識したり、ユーザーが行き来しやすい状態を作り上げます。 

※直下で管理できたからと言ってもSEO対策で大幅な効果が得られるというわけではありません。無理やり直下管理することで構成がどうなっているかがわからなくなったり、本来のEC-CUBE4のシステムに干渉・影響を与えてしまい管理できなくなるのであれば、サブドメインで分けるなどして別管理することをオススメします。

  

やりたいこと 

今回やりたいことは、以下のURLでアクセスすることでそれぞれの管理下へ移管させることです。

EC-CUBE4

https://ドメイン名 

WordPress

https://ドメイン名/blog

 

blog以下はWordPress管理、それ以外はEC-CUBE4による管理としています。もちろん、EC-CUBE4でblogというパスを使用していないことが条件となります。

 

設置場所

では、WordPressファイルの設置場所についてです。公式よりダウンロードしたファイルを解凍すると、wordpressというフォルダ名になっているので、それをblogに変更してEC-CUBE4のルートディレクトリへ設置しました。

 

ディレクトリの名称はパスの名称ではありませんので、wordpressのままでも構いませんし、それ以外に自分でわかりやすい名称をつけてもらっても構いません。

 

Controllerの拡張

通常、EC-CUBE4でページ追加するとuser_dataというパスが付与され、それ以降に自分の決めたパス名が付与されたURLとなります。ですが、これはUserDataControllerを使用してページを拡張しているからに過ぎません。

なので、blog用にBlogControllerを作成して、新しいルーティングを作成しましょう。

 

/src/Eccube/Controller/BlogController.php
<?php

namespace Eccube\Controller;

 

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;

use Symfony\Component\Routing\Annotation\Route;

 

class BlogController extends AbstractController

{

    /**

     * @Route("/blog", name="blog")

     */

    public function index()

    {

        define( 'WP_USE_THEMES', true );

        require __DIR__ . '/../../../blog/wp-blog-header.php';

        return;

    }

 

}

 

ルーティングはドキュメントコメントのアノテーション(@)後に記述することで設定することができます/blogというルーティングを作成して、twigからname指定で呼び出せるようにname=”blog”と設定しています。

 

コントローラーが呼び出された際に行う処理は、WordPressのindex.phpで行なっている定数宣言とwp-blog-header.phpの呼び出しです。

これで、「https://ドメイン名/blog」というURLが指定された際にはWordPressファイルを呼び出すことができます。

 

.htaccessによる制御

この状態でblogURLにアクセスするとWordPressのインストールが可能です。しかし、インストール、ログイン画面までは表示出来たとしても、管理画面へアクセスすることができません。これを有効化させるためには、EC-CUBE4の.htaccessの制御範囲にWordPressディレクトリを対象外としなければなりません

 

/.htaccess
--省略

 

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !^(.*)\.(gif|png|jpe?g|css|ico|js|svg|map)$ [NC]

RewriteCond $1 !^(blog/)

 

--省略

 

上記の3行目が追加した記述です。blogディレクトリには干渉しないようにしています。これにより、WordPressを正常起動させることができます。

 

https://ドメイン名

 

https://ドメイン名/blog

 

 

https://ドメイン名/blog/ログイン画面パス

 

https://ドメイン名/blog/管理画面パス

 

EC-CUBE4の標準ページにも特に干渉していないため、正常稼働しています。

これで、各CMSの共存は完了です。パーマリンク設定やプラグインの導入によってはお互いが干渉し合うことで機能しない部分も出てくる可能性がありますので、一気に機能増設せずに1つずつ確認、どのプラグインや設定が原因となっているかチェックしながら開発するようにしましょう。

  

データベースの分離

EC-CUBE4WordPress共にデータベースを使用するCMSです。WordPressではインストール時に接頭語を決めることができるため、テーブルの衝突を避けることはできますが、できるだけそれぞれにDBを用意することをオススメします

同じDBを使えば、プラグインなどの影響で衝突が起こってしまうことが考えられるため、別管理しておくに越したことはありません。

共存管理する際には、十分に注意しながら開発を進めていってください。

 

 

まとめ

いかがだったでしょうか。

今回はネットショップの有名所である「EC-CUBE4」と、ブログCMSで有名な「WordPress」の共存方法についてご紹介しました。

 

それぞれの良さを引き出すことができれば、より機能性を持った強いサイトを作ることが可能です。その反面、それぞれの仕組みを十分に理解しておく必要があるため、ある程度の知識と保守やカスタマイズの制限などとも戦っていかなければなりません

それぞれ現段階での最新版を使った方法をご紹介しましたが、どちらもバージョンアップにより同じ方法が使えなくなる可能性もあるため、十分にご注意ください。

 

自社ネットショップの開設を検討している方は、ぜひ参考にしてみてくださいね。

 

注目の記事

WordPressのJSファイル読み込みで覚えておきたい便利ワザを2つ紹介します
プログラミング
jQuery,PHP,WordPress
WordPressのJSファイル読み込みで覚えておきたい便利ワザを2つ紹介します

  JSファイルを読み込むときに、deferやasyncを付与したい・・・ get_template_directory_uri()をJSファイル内で使用したい・・・   WordPressには便利な関数が沢山用意されていますが、その全てが万能だということはありません。 今回はSEO対策でも必要になるdeferやasyncをスクリプトタグに付与させる...

命中率補正と交代技編 PHPポケモン 45
プログラミング
PHP,PHPポケモン,ポケモン
命中率補正と交代技編 PHPポケモン 45

命中率補正とは ダメージ計算や行動順判定には補正(ランク)を計算した結果を反映していましたが、命中率補正についてはまだ未実装だったため、今回はこちらを作成していきたいと思います。 まずはwikiを参考に、計算方法を見ていきましょう。 命中(ポケモンwiki) https:// wiki.ポケモン.com/wiki/命中 第...

飲食店がホームページを作る5つのメリット 〜デメリットについても解説します〜
マーケティング
Google AdSense,SEO
飲食店がホームページを作る5つのメリット 〜デメリットについても解説します〜

  お店のホームページを作りたい   そういった飲食店の方は意外にも多く、イタリアンや居酒屋、日本料理店など種類も様々です。   今回のテーマは「飲食店がホームページを作る上で知っておきたいメリットとデメリットについて」です。   食べログやホットペッパーなどといったグルメサイトが主流とな...

プログラミングとは?現役システムエンジニアが教える裏事情
プログラミング
システムエンジニア,プログラマー
プログラミングとは?現役システムエンジニアが教える裏事情

  プログラミングってよくわからない? 実際に何をやっているの?   最近注目されているSE(システムエンジニア)やPG(プログラマー)という職業ですが、「そもそもプログラミングとは?」といった疑問を抱えている方も多いですね。 今回は、そういった方へ向けて「プログラミングの基礎知識と裏事情」...

【完全未経験OK】プログラミングの始め方 〜学習方法を解説します!〜
プログラミング
CSS,HTML,JavaScript,MAMP,PHP,XAMPP,フリーランス,プログラミング,独立,起業
【完全未経験OK】プログラミングの始め方 〜学習方法を解説します!〜

  プログラミングって難しい   そういう人は多いですね。しかしそんなことは有りません。 言語という点で比較すれば、英語やフランス語など第二言語を学ぶ方が難しいと言えます。   プログラミングの需要は年々高まり、今や最高潮とも言える域まで来ています。 なぜそこまで需要が高いのか?   ...

これをしてはいけません!「よくわかるSEO対策」エンジニアのための基礎知識編
SEO対策
htaccess,HTML,JavaScript,SEO,エンジニア,プログラミング
これをしてはいけません!「よくわかるSEO対策」エンジニアのための基礎知識編

  近年ではWebサイト制作会社や個人事業主はかなり増えてきました。 会社によっては力を入れている部分は異なり、主に「デザイン」「機能(システム)」「SEO」という3つに分けられます。 飽和しているのでは無いかと囁かれている中、この3つすべてを揃えた事業者は意外と少なく、個人となれば更に少なくなります。...

ポケモン預かりシステム編 ボックスの作成 PHPポケモン 86
プログラミング
PHP,PHPポケモン,ポケモン
ポケモン預かりシステム編 ボックスの作成 PHPポケモン 86

ポケモン預かりシステムの実装 今回は、前回ざっくりと仕様決めをした「ポケモン預かりシステム」を実装していきます。ボックス内では操作する項目が多いため、ボックス自体に1つの画面を用意して、できる限りPHPによる制御だけで完結できるように作成していきます。   ボックスクラスの作成 それではまず、今...

進化の石編(実装)PHPポケモン103
プログラミング
PHP,PHPポケモン,ポケモン
進化の石編(実装)PHPポケモン103

アイテムによる進化 前回作成した、進化アイテムによる構成の続きです。   進化アイテムとして「かみなりのいし」、ピカチュウの進化判定を作成したので、アイテムの使用から進化処理までを作成、実装します。   今回作成する処理は以下の2点です。 アイテムの使用判定 進化画面への移管   それ...

カテゴリ

SEO対策 イベント デザイン ネットワーク ビジネスモデル フリーランス プログラミング マーケティング ライティング 動画編集 雑記

タグ

5G Adobe AfterEffects AI ajax amazon Animate api artisan atom Automator AWS Bluetooth CSS CVR description EC-CUBE4 ECショップ ESLint Facebook feedly foreach function Google Google AdSense Honeycode htaccess HTML IEEE 802.11ax Illustrator Instagram IoT JavaScript jQuery jQuery UI keyword LAN Laravel Linux MacBook MAMP meta MLM MySQL NoCode note OS OSI参照モデル Paypal Photoshop PHP phpMyAdmin PHPポケモン PremierePro rss SEO SEO対策 Sequel Pro Skype SNS SSH Symfony TCP/IP title Toastr Trait Twig Twitter UCC V系 WAN WebSub Wi-Fi wiki Windows WordPress XAMPP xml Xserver YouTube YouTuber Zoom アーティスト アウトプット アクセス層 アニメーション アフィリエイト イーブイ インターネット インプット エンジニア オブジェクト指向 お金配り クリック単価 クリック数 コミュニケーション能力 コロナ コンサルティング サムネイル システムエンジニア スタートアップ スタイルシート スパム データベース ディープフェイク デザイナー デザイン テレワーク ナンパ ニュース ネットワークモデル ノマドワーク バナー ピカチュウ ビジネス フィード フリーランス ブロガー ブログ プログラマー プログラミング プログラミング学習 プログラミング教育 プロトコル ホームページ制作 ポケモン マークアップ マーケティング メール リモートワーク レンダリング 三井住友 三宮 仕事依頼 児童デイ 児童デイサービス 児童発達支援 公開鍵 初心者 助成金 勉強法 営業 広告 広告収入 必勝マニュアル 放課後等デイサービス 朝活 楽天 深層学習 無線LAN 独立 神戸 福祉 秘密鍵 翻訳 自己啓発 英語 見積書 計算機 読書 起業 迷惑メール 配列 銀の弾丸 集客 雑学力