Blog

【ECCUBE】【WordPress】ECCUBEのブロックでWPの投稿記事を表示

2016/12/19

ECCUBE2.13 投稿 Wordpress

備忘録です。

ECCUBEのブロックでWordpressの投稿記事を表示する方法です。

参考サイト
EC-CUBEの話(1) Feedを使わずにWordPressの記事をブロックに表示
ECCUBEとWordPressを連携させる方法

まず、ECCUBEをインストールしているのと同じディレクトに「blog」を作成してWPをインストール

WPインストール後、「EC-CUBEの話(1) Feedを使わずに~」を参考にソースコードを貼り付けようと思いましたが、
phpのソースがECCUBEに準じていない箇所があったため修正してから貼り付け

wp_newsブロックを作成

<!-- TOP_wordpress_include_01 -->//別に書かなくていい。
<!--{php}-->
require_once('./blog/wp-load.php');//これが重要。
<!--{/php}-->
<div id="infoarea" class="mr10">
    <div class="info_tit"><a href="/blog/"><span class="white">新着ニュース</span></a></div>
    <div class="info_themewrp">		
    <!--{php}-->
    $posts = get_posts('numberposts=3&category=1');// よく見るでしょ。 件数とブログカテゴリの取得
    global $post;
    <!--{/php}-->
    <!--{php}-->
    if($posts): foreach($posts as $post): setup_postdata($post);  <!--{/php}-->
        <div class="info_theme">
        <!--{php}--> if (has_post_thumbnail()) : <!--{/php}-->
            <div class="info_img"><!--{php}--> the_post_thumbnail(72, 72, true); <!--{/php}--></div><!--{php}--> endif; <!--{/php}-->// サムネイルがあれば
            <div class="info_tit_text mb10"><!--{php}--> echo date("Y.m.d", strtotime($post->post_date)); <!--{/php}-->//日付表示 
            <!--{php}--> the_tags( '<span class="sc_name_tag"> ', '</span>' ); <!--{/php}-->//タグ表示</div>
	    <div class="info_text"><a href="<!--{php}--> the_permalink();<!--{/php}-->"><!--{php}--> the_title();<!--{/php}--></a></div>
	    <!--{php}-->the_excerpt();<!--{/php}-->
        </div>
    <!--{php}--> endforeach; <!--{/php}-->
    <!--{php}--> endif; <!--{/php}-->	
    </div>	
</div>

これでサイトをチェックしてみるとWPのログイン画面が表示されてしまいました。

そこで、「ECCUBEとWordPressを連携させる方法」を参考にWPのファイルを書き換え
config.php
DB_NAMEなどをWP_DB_NAMEに書き換え

// ** MySQL 設定 - こちらの情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define('WP_DB_NAME', 'データベース名');
 
/** MySQL データベースのユーザー名 */
define('WP_DB_USER', 'ユーザー名');
 
/** MySQL データベースのパスワード */
define('WP_DB_PASSWORD', 'パスワード');
 
/** MySQL のホスト名 */
define('WP_DB_HOST', 'ホスト名');

wp-includes/load.phpも同様に書き換え

function require_wp_db() {
global $wpdb;

require_once( ABSPATH . WPINC . '/wp-db.php' );
if ( file_exists( WP_CONTENT_DIR . '/db.php' ) )
require_once( WP_CONTENT_DIR . '/db.php' );

if ( isset( $wpdb ) )
return;

$wpdb = new wpdb( WP_DB_USER, WP_DB_PASSWORD, WP_DB_NAME, WP_DB_HOST ); //ここを書き換え
}

これで無事表示されましたが、//のコメントアウトが全て表示されてしまったので削除。
CSSで調整していません。とりあえず、そのままです。

2017/1/12 追記
この方法だとWPがバージョンアップ(自動更新)されるときに、wp-includes/load.phpが書き換わってしまうので問題があることがわかりました。
面倒ですが、バージョンアップがあった場合には、wp-includes/load.phpを毎回書き換える必要があります。

カテゴリー

月間アーカイブ

MORE

ミュージシャンズ・プラザ

神社仏閣ホームーページ制作

ホームページ制作問合せ