WEBlo-気ままにあれこれ -2ページ目

WEBlo-気ままにあれこれ

WEB&デザイン

こちらでは気ままにメモ&ブログを書いてます。
WPネタが多いかも
(なんでもっと早くしなかったんだろ・・・;;)

最近、ショッピングサイトはEC-CUBE制作、
サイト内の新着情報はWordPressで構成していくことが多くなってきました。

EC-CUBEはショッピングサイトとしての使い勝手は良いけれど、新着情報などをブログ感覚でやりたい人にはちょっとだけ不向き。
新着情報編集PHPのエディタ部分にプラグインを入れてもいいけど、育成される新着情報ページはシンプルすぎて
件数が多くなればとってもとっても見にくいです(笑)
かといって、新着ページをWPのような見栄えに制作・追加となると、触らなきゃいけないファイルが・・・最低4つかな?それにDBも。
結構大変なのです(笑)
なので、商品部分と新着情報(ブログ)は切り離して管理したほうが効率もよくてグッドなのです。

ということで、WPの新着情報(RSS)を取得して表示する方法をご紹介

試行錯誤し、やっと安定してくれましたよ。

1、表示したいページの<head>内にhttps://www.google.com/jsapiを読み込む

<script type="text/javascript" src="https://www.google.com/jsapi"></script>

2、以下スクリプトを<head>内に記入、もしくは外部JSで読み込む

※ファイルの保存形式はUTF-8にしないと、文字化けしてしまうので、ご注意!

<ココから>
google.setOnLoadCallback(initialize);

google.load("feeds", "1"); //APIを読み込む

function initialize(){
 
 var feed = new google.feeds.Feed("読み込みたいRSSのURL");
 var noPhoto = ("<img src='画像がなかった場合のNo-Image画像URL' />");
 
 feed.setNumEntries(5); //読み込む件数を設定
 feed.load(dispfeed);
 
 function dispfeed(result){

  if(!result.error){
   var container = document.getElementById("feed"); //HTMLに書き出す対象のIDを指定

   for (var i = 0; i < result.feed.entries.length; i++) {

    var entry = result.feed.entries[i];

    var entryDate = new Date(entry.publishedDate); //日付を取得(以下二桁処理)
    var entryYear = entryDate.getYear();
    if (entryYear < 2000){
     entryYear += 1900;
    }
    var entryMonth = entryDate.getMonth() + 1;
    if (entryMonth < 10) {
     entryMonth = "0" + entryMonth;
    }
    var entryDay = entryDate.getDate();
    if (entryDay < 10) {
     entryDay = "0" + entryDay;
    }
    var date = entryYear + "/" + entryMonth + "/" + entryDay + "";

    var entryImg = "";
    var imgCheck = entry.content.match(/(src="http:)[\S]+((\.jpg)|(\.JPG)|(\.jpeg)|(\.JPEG)|(\.gif)|(\.GIF)|(\.png)|(\.PNG))/); //画像のチェック(拡張子はここで増やす)
    if(imgCheck){
     entryImg += '<img ' + imgCheck[0] + '">';
     } else {
      entryImg += noPhoto;
    }

    container.innerHTML += entryImg 
    + '<h3><a href="' + entry.link + '">'
    + entry.title + '</a></h3>'
    + '<p>'+ date + '</p>'
    + '<p>' + entry.contentSnippet.substring(0,120)
    + '<a href="' + entry.link + '">・・・続きを見る</a></p></div>';
   }

   var linkBlank = container.getElementsByTagName('a'); // リンクに'_blank'を設定
   for (var j = 0, l = linkBlank.length; j < l; j++) {
    linkBlank[j].target = '_blank';
   } //target'_blank'ここまで
  }
 }
}
google.setOnLoadCallback(initialize);



5、HTMLに出力

<div id="feed"></div>

ECーCUBEであれば、新規ブロックを作成して<div id="feed"></div>と記入。


4、CSSで見栄えを整える

HTMLへの出力は

    container.innerHTML += entryImg
+ '<h3><a href="' + entry.link + '">'
+ entry.title + '</a></h3>'
+ '<p>'+ date + '</p>'
+ '<p>' + entry.contentSnippet.substring(0,120)
+ '<a href="' + entry.link + '">・・・続きを見る</a></p></div>';

の部分なのでclass属性を追加してあげるといいですよ。

entryImg・・・画像
entry.title ・・・タイトル
date・・・日付
entry.contentSnippet.substring(0,120)・・・抜粋本文
entry.link・・・記事へのURL


サンプル)画像のみ左へ、他本文は右へ、であれば

    container.innerHTML += '<div class="left">' + entryImg +'</div>'
    + '<div class=right><h3><a href="' + entry.link + '">'
    + entry.title + '</a></h3>'
    + '<p>'+ date + '<br /><br />'
    + entry.contentSnippet.substring(0,120)
    + '<a href="' + entry.link + '">・・・続きを見る</a></p></div><div class=clear></div>';

<css>

#feed{
 width:300px;
}
#feed h3{
 margin: 0;
}
#feed img{
 width:100px;
}
.left{
 float:left;
 width:100px;
 height:100px;
 overflow:hidden;
}
.right{
 float:right;
 width:200px;
 height:100px;
 padding:0 0 20px 10px;
}
.clear{ clear:both; border-bottom:1px solid #FF9;}

いろいろな書き方を試してみたけど、これが一番安定してますね。
※試しているのはWPだけ

本日のメモでした(*^_^*)

Ping機能・更新情報サービスとは


一般的にはネットワークの疎通を確認するために使用されるコマンドです。

WordPressなど、ブログにおける Pingは、記事を公開した時に「こんな記事を公開しました」とアナウンスする機能です。
 
そしてそのPing(ピン)機能を利用して送られてきた情報を受け取り、情報をまとめて公開しているサーバがあります。

WordPressの Ping機能はそのサーバに向けて記事を公開した情報を送る機能です。
 
WordPressの機能としては「更新情報サービス」という名称ですが、一般的に更新情報を受け取る側のサーバが「Pingサーバ」と呼ばれていますので、WordPress以外のブログサービスでは正式名称が Ping機能というものも多くあります。
 
 
<主なping送信先サーバ>

http://api.my.yahoo.co.jp/RPC2
http://blogsearch.google.co.jp/ping/RPC2
http://blogsearch.google.com/ping/RPC2
http://blog.goo.ne.jp/XMLRPC
http://ping.fc2.com
http://ping.cocolog-nifty.com/xmlrpc
http://www.blogpeople.net/servlet/weblogUpdates
http://ping.dendou.jp/
http://pingoo.jp/ping/
http://ping.amagle.com/
http://ping.blo.gs/
http://ping.bloggers.jp/rpc/
http://rpc.weblogs.com/RPC2


どのサイトが効果的なのかは具体的にはわからず、マイナーであったり、小さなところはすぐにサービスをやめてしまうなど、問題があります。

『Pingサーバ』で検索するといろいろと出てきますね。


送信先は多いに越したことはないので、ちょくちょく確認しながら増やしていくといいかもしれません。


しかし、WordPressの場合、公開時だけでなく、編集時も送信されるので、スパム扱いされることも多々。

まだまだ改善が必要ですね。

カスタマイズが楽しいWPの記事を久しぶりに更新します


themeは使わずに自作するときや、themeに入っていないときにウィジェットを追加する


以外と簡単でビックリだけど、忘れたら困るのでメモ



1、function.php


ローカルで動作しているthemeファイルの「function.php」にコードを追加する。

環境で触れないときはWordPressのメニューから「外観」→「テーマ編集」→「function.php」を開き、ウィジェットを追加するために以下のコードを追加する。

register_sidebar(array('name' => 'フッター1'));
register_sidebar(array('name' => 'フッター2'));
register_sidebar(array('name' => 'フッター3'));



2、ウィジェットの設定


WordPressのメニューから「外観」→「ウィジェット」からご自由に。



3、footer.php


ローカルで動作しているthemeファイルの「footer.php」にコードを追加する。

WordPressのメニューから「外観」→「テーマ編集」→「footer.php」を開き、ウィジェットを呼び出すために以下のコードを追加する。

<div id="footer_menu">
<ul><?php dynamic_sidebar('フッター1'); ?></ul> <ul><?php dynamic_sidebar('フッター2'); ?></ul> <ul><?php dynamic_sidebar('フッター3'); ?></ul> </div>
ついでにcssサンプルも
footer_menu ul {
	float:left;
	width: 300px;
	padding: 10px;
}


これで完了