wordpress ループ

wordpress ループは
投稿、固定ページ、アーカイブページにおいて
記事を共通野方法で処理するための基本的な仕組みのこと
wordpress ループでは処理すべき記事の数だけ繰り返す
固定ページ、単体の投稿ページの場合
通常は処理すべき記事の数は1つなので
ループ回数は1回になる
have_posts()
で処理すべき記事が残っているか判断
the_post()
で処理すべき記事を1つwordpress内部に
セットして
テンプレタグなどで情報を抽出できるようにすることと
内部カウンターを進める
このカウンタを見て、have_posts()は処理すべき記事が残っているか判断する
the_content()
で記事を出力する
この一連の流れを処理すべき記事がなくなるまで繰り返すのが
wordpress ループ
ちなみに、 wordpress ループで検索するといろいろとでてきます
今回は、初心者さんが陥りがちなWordPressループのミス
が参考になりました
こういったトラブルの解決方法はとても役立ちます
あとは、プログラミングのバグの探し方とか
サーバー構築のエラー対処とかあればまた書いていこうと思います

vmware player 起動でエラー

VMware Kernel Module updater で
エラーが発生し、途中で終了してしまいます
ダイアログには
Unable to build kernel module.
See log file /tmp/vmware-root/setup-3318.log for details
と表示されているため
sudo cat /tmp/vmware-root/setup-3318.log
で調べて
Failed to compile module vmmon!
とでてるので
これをgoogle で検索
VMwarePlayerが起動しない on Ubuntu 10.10 RC
へそのヒントが載っていました
どうやら、カーネルが比較的新しいため
非公式パッチをあてる作業が必要とのこと
そういえば、このPCは VMwarePlayer のバージョンが
古かったのを忘れていました
VMware player ver4 で
似たようなエラーがでていたのですが
ver 5 で改善されていたので
VMware のダウンロードページへいって
VMware-Player-5.0.1-894247.i386.bundle
をダウンロードします
ダウンロードページは
こちら
ちなみに注意点としては
Google Chrome でダウンロードすると
拡張子が
.txt になり、変更する必要があるようなので
面倒なら
Firefox とかでダウンロードすることをおすすめします
ダウンロード完了後
cd ダウンロード/
chmod +x VMware-Player-5.0.1-894247.i386.bundle
sudo ./VMware-Player-5.0.1-894247.i386.bundle
でインストール開始されます

JSON形式のデータ読み出し

JSON形式のデータ読み出し
データは日付をキーにして保存
データを読み出すには
テキストフィールドに入力された日付を読み出して変数へ入れておく
読み出した日付がキーになるので
以下のようにすれば、日記のデータを読み出せる
もし、該当する日記がないならnullになる
windowlocalStorage.getItem(diary_date);
このように、読み出したデータは
JSON形式の文字列になっている
このままだと、Javascriptで簡単にはアクセスできないため
Javascriptのオブジェクトへ変換する
Javascriptのオブジェクトにすれば
簡単に保存したデータへアクセスできる
JSON形式から
Javascriptのオブジェクトにするには
JSONオブジェクトにあるparse()
を使う
このparse()のパラメータに、読み出した
JSONデータを指定する

ubuntu 12.04 iso ダウンロード

Ruby on Rails の勉強のため、
ubuntu 12.04 LTS Desktop 日本語が必要になったため
ダウンロードしました
ダウンロードには
http://www.ubuntulinux.jp/News/ubuntu1204-desktop-ja-remix
へアクセスして
ubuntu-ja-12.04-desktop-i386.iso(CDイメージ)
をダウンロードします
あとは、実験環境として作成するため
VMware Player で構築します
今回は Rails ということで
解説をつけてみました
主な特徴は3つ
webアプリの実装をMVCの3つにわける
同じことを繰り返さない
フレームワークで簡潔にする
ダウンロードに時間がかかりそうなので、開発環境構築は明日以降になりそうです

JavaSctipt と CoffeeScript の違い

CoffeeScript では
プログラムの構造を表すのに
;
{}
を使わない
各行の先頭に
スペースやタブを入れて
インデントすることで構造を表す
このため、
}
とか
;
が原因のバグが起きなくてすむ
また、関数の作り方は
JavaScript では
function() {}
だったけど
CoffeeScript では
->
となる
また、CoffeeScript ではオブジェクトの定義に
class を使う
そして、CofeeScript の場合
コンストラクタは
constractor という名前のメソッドで定義する
メソッドは
メソッド名:->
と定義する
そして 変数を宣言する時に
JavaScript では
var
で変数宣言したけど
CoffeeScript では
利用した関数が、関数の先頭で自動的に定義される
プロパティの値には@がつく
これは JavaSctipt の this の代わり
そして
->
の代わりに
=>
を使うと意味が変わる
メソッドの定義で=>を使うと
どんな呼ばれ方をしても
@が変わらないメソッドになる
@は JavaScript でいう this のこと
JavaScript のときには this が変わるため
対処が必須だったけど
CoffeeScript なら
=>
で対処できる

CoffeeScript 開発環境導入

CoffeeScript を使うのに必要となる
JavaScript 実行環境 Node.js

そのパッケージ管理システムの npm
をインストールします
端末を開いて
sudo apt-get install python-software-properties
sudo apt-add-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs npm
インストールできたらバージョン確認
node -v
次に、coffee-script のインストール
sudo npm install -g coffee-script
インストールできたら
coffee -v
でバージョン確認

coffeeScript

coffeeScript は
java script にコンパイルして使う小さな言語
CoffeeScript は
java script の豊富なライブラリをそのまま使える
CoffeeScript は
オブジェクト至高に対する考えが違う
JavaScript はプロトタイプベース
CoffeeScript はクラスベース
ちなみに、
Java
C++
Ruby
などもクラスベース
JavaScript が採用しているプロトタイプベースは
組み立てたオブジェクトに
後から
プロパティ、メソッドを追加できる
オブジェクトのコンストラクタは
あくまでプロトタイプという考え方
柔軟性は高いけど、思わぬバグがでたりするのが欠点
CoffeeScript は
extends による継承もできるし
実は機能の追加も後からでもできる

ローカルストレージに保存する形式

ローカルストレージに保存する形式
同じデータ形式なら
,
で区切って複数データの保存が可能
また
json()

toString()
で変換すれば
配列データなどを
,
で区切りのデータにできる
たたし、日記などでは
これはできないから
データをJSON形式へ変換してから
ローカルストレージに保存する
JSON形式は
Javascript用の軽量データフォーマットのこと
JSONは
Java
Script
Object
Notation
の略
JSON形式はシンプルで、以下の書式になる
{
“キー”:値
}
データが複数あるなら
,
で区切り、
文字列の値を取り扱うなら
“”
で囲む
JSONではなく、XMLでもできるけど
容量制限があるから
できるだけJSONの方がよい

.htaccess と mod_rewrite

vim /var/www/wordpress/.htaccess
でファイルを作成し
<IfModule mod_rewrite.c>>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
を記述したものの、いまだアクセスできません
どうやら
mod_rewrite がサポートされていないサーバーでは
この状態が起きるようです
このため、ubuntu 11.10 mod_rewrite
で検索
さくらVPS(Ubuntu)でWordPressのパーマリンク設定の変更がうまくいかず404
を参考にさせていただきました
sudo vim /etc/apache2/sites-available/default
で設定ファイルを開き
AllowOverride None

AllowOverride All
へ変更
(2ヶ所あるので注意)
sudo a2enmod rewrite
でモジュール有効化
設定変更を反映するため
sudo /etc/init.d/apache2 restart
で apache2 を再起動します
これで、無事に設定反映されました

vim /var/www/wordpress/.htaccess
でファイルを作成し
<IfModule mod_rewrite.c>>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
を記述したものの、いまだアクセスできません
どうやら
mod_rewrite がサポートされていないサーバーでは
この状態が起きるようです
このため、ubuntu 11.10 mod_rewrite
で検索
さくらVPS(Ubuntu)でWordPressのパーマリンク設定の変更がうまくいかず404
を参考にさせていただきました
sudo vim /etc/apache2/sites-available/default
で設定ファイルを開き
AllowOverride None

AllowOverride All
へ変更
(2ヶ所あるので注意)
sudo a2enmod rewrite
でモジュール有効化
設定変更を反映するため
sudo /etc/init.d/apache2 restart
で apache2 を再起動します
これで、無事に設定反映されました