Home

WIZ-WORDPRESS│EC-CUBE-LABO

ie7のz-index

WordPress のデフォルトのテーマの Twenty Ten のヘッダーメニューバーにはページへのリンクが表示され、子ページがある場合はドロップダウンで表示されます。

1段だけで収まれば何の問題もないのですがページが多くなり、2段になってしまったとき、ie7で問題が発生します。

1段目のどれかでドロップメニューが出現したときに、その真下(2段目)にメニューがあった場合その2段目のメニューをスキップしてドロップダウンメニューが表示されてしまいます。

z-index で調整してもまったく効果なし。

いろいろ調べた結果、ie7 は

  • HTMLに書かれている順番が優先される。
  • HTMLで、後に書かれているブロックが前面に表示される。
  • z-indexの数値は、ブロック内の順番の指定になるが、ブロックをまたいで解釈されることはない。

ということらしいです。(調べものブログさんから引用)

そこで、

1段目のメニューと2段目のメニューを別々に登録し(Wordpress 3.0 からの新機能)HTMLで2段目を先に、1段目をその次に記述してcssで上下を入れ替えることで解決しました。(Wordpress に限ったことではないですが)

一言言わせてください。

ie7 はクソだ~~~!

WordPressをPostgreSQLで使う

WordPressをPostgreSQLで使うためのプラグインを使います。

PostgreSQL for WordPress (PG4WP)というプラグイン。
http://wordpress.org/extend/plugins/postgresql-for-wordpress/

  • WordPressの wp-content/plugins/ フォルダに pg4wp フォルダごとアップロード。
  • pg4wp フォルダの中の db.php というファイルを wp-content/ 直下に移動。

そして、/wp-admin/install.php にアクセスしたが、あれれ?画面が真っ白になってしまった:/

ネットであちこち探してみると解決策を見っけ~!こちらのサイトを参考に、

/wp-admin/install.php の42行目あたりをコメントアウト

#require_once(dirname(dirname(__FILE__)) . '/wp-includes/wp-db.php');

でめでたく正常に WordPress をインストールできました。

ちなみにそれぞれのバージョンは、

  • WordPress 3.0.5
  • PG4WP   1.1.0

sshが使えないサーバにEC-CUBEをインストールするインストーラー

ftpでしかファイルをアップロードできないサーバにEC-CUBEをアップロードしてインストールするときに一番困るのがパーミッションの設定だ。

sshが使えるとほんとに楽にパーミッションを保持したままサーバ上で解凍できるのだが、ftpだとローカルで解凍したファイルをアップロードしなきゃいけないし、アップロードができたら今度はインストールする際にパーミッションが違うというアラートがてんこもり出てくる。

困ったもんだ・・・。

が、しかし、めっちゃ便利なインストーラーをはけ~ん!

wkyECCUBE自動インストーラーだ!

HIRORON LABs からインストーラーをダウンロードして使うとホントにらくにインストールができるのである。しかも最新のバージョンをインストールしてくれるのである。

お試しあれ!

EC-CUBE PayPalモジュールがインストールできない

EC-CUBE の OWNERS STORE から PayPalモジュールをダウンロードし、管理画面で「購入商品一覧」→「購入商品一覧を取得する」ボタンをクリックしても何も反応がない。これではインストールできないではないか!

サーバーは、ファイアーバード。

検索でいろいろ調べてみた結果、

http://ec-cube.webtex.jp/customize/20101014202131

の記事の内容を試してみるとうまくいった。

内容はパーミッションの変更ということだった。

user_data 755
user_data/packages 777→755
user_data/packages/template_name 777→755
user_data/packages/template_name/js 777→755
user_data/packages/template_name/js/ownersstore.js.php 666→644

参考サイトでも「なぜかわからないが」と書いてあったが、ホントなぜかわからんがうまくいったのであった。:)

ファイアーバードでEC-CUBEの郵便番号DB登録

管理画面から「郵便番号DB登録」をクリックしてもエラーになってしまう。

おそらくデータ量が大きいのが原因だと思うので(私的憶測)、その対処法を記します。

■日本郵便のサイトから「読み仮名データの促音・拗音を小書きで表記するもの」
http://www.post.japanpost.jp/zipcode/dl/kogaki.html
にアクセスし、「全国一括」ファイルをダウンロード。

■フリカナが半角になっているので全角に変換。文字コードは utf-8 にしておく。

■phpMyAdmin で mtb_zip テーブルを一旦空にしてからインポート。
 インポートするファイルの形式→ csv。
 部分インポート → チェックを外す。
 フィールド区切り記号 → .(半角カンマ)

 「エンコーディングへ変換する」→ none を選択。
 「全角カナへ変換する」→ チェックを外す。

EC-CUBEからメールが送信されない件

Netowl の Firebird というサーバーに EC-CUBE をインストールした場合、デフォルトのままでは注文完了時や通知のメールが送信されなかった。

送信できるようにするには、
/data/mtb_constants_init.php と
/data/cash/mtb_constants.php
の532 行目の

define('MAIL_BACKEND', "smtp");

define('MAIL_BACKEND', "mail");

に変更すれば解決した。

EC-CUBE 携帯では「オススメ」を表示しなくするには

data/Smarty/templates/テンプレートディレクトリ/mobile/frontparts/bloc/best5.tpl の

<!–{if count($arrBestProducts) > 0}–>

<!–{if count($arrBestProducts) > 20}–>

に変更。(ここでは0を20に変えているが、おすすめ数は20はありえないということで入れてるので他にも書き方はあると思うが、手っ取り早いのでこのように変更している)

携帯から投稿すると「予約投稿が失敗する」になる

表題のとおり、携帯から投稿すると予約投稿になってしまったので管理画面で更新をかけると「予約投稿が失敗しました」となってその記事は投稿できなくなった。

6w6aさんの記事を参考に修正してみた。

“\wp-includes\cron.php”の 229行目(WordPress 2.9の場合)、

    wp_remote_post( $cron_url, array(‘timeout’ => 0.01, ‘blocking’ => false, ’sslverify’ => apply_filters(‘https_local_ssl_verify’, true)) );

この0.01を5~10など大きめの数字に変えます。タイムアウト時間がたった0.01秒では通常の共用サーバーじゃ厳しいです。それでも数秒もあれば十分でしょう。

    wp_remote_post( $cron_url, array(‘timeout’ => 5, ‘blocking’ => false, ’sslverify’ => apply_filters(‘https_local_ssl_verify’, true)) );

大体のケースはこれで解決すると思います。動作報告ください。

がうまくいかなかったのでしばし考えた結果、携帯電話の時間設定が狂っているかもしれないと思いついたのでほんの少しサーバの時間より遅らせてテストしてみるとうまくいった。

Ktai Entry の設定

今更ながらですが携帯からメールで WordPress に投稿するプラグインの Ktai Entry をインストールしました。

まず、Ktai Entry をこちらからダウンロードします。

今回ダウンロードしたバージョンは、0.8.11でダウンロードしたファイルは ktai_entry0811.tar.bz2 という圧縮ファイル。基本的な設定方法はダウンロードページに説明があるのでここでは省略します。

普通の流れは、
設定したメールアドレス宛に携帯からメールをする。
   ↓
管理画面で設定した間隔でメールサーバにメールを読みに行き、メールが入っていればその内容で WordPress に新規投稿される。

となりますが、これを「メール着信時に投稿スクリプトを起動させる」という設定にしたい場合、ダウンロードページには Sendmail の設定方法が書いてなかったので Sendmail の設定方法を記します。

設定した受信用メールアカウントのフォルダ内に .forward というファイルを作り、そのファイルに
"| /usr/bin/php -q /ワードプレスのパス/wp-content/plugins/ktai_entry/inject.php"
と記述。

.forward は一般的にメールの転送するときに使うファイルですが、上記の記述によってこのアカウントにメールが入った時に inject.php を実行させることができるのです。

設定ができたのでメールを送信してみたところ、

   —– The following addresses had permanent fatal errors —–
"| /usr/bin/php -q /ワードプレスのパス/wp-content/plugins/ktai_entry/inject.php"
    (reason: Service unavailable)
    (expanded from: <送信したメールアドレス>)

   —– Transcript of session follows —–
smrsh: "php" not available for sendmail programs (stat failed)
554 5.0.0 Service unavailable

というエラーが返ってきました。

smrsh がなにやらうまくいってなさそうなのでネットでいろいろ調べてみると、サーバの /etc/smrsh/ にシンボリックリンクを設定するといいようなので、su – でルートでログインし、smrsh ディレクトリに移動
# cd /etc/smrsh/

そしてシンボリックリンクを追加
# ln -s /usr/bin/php ./php

そしてメールを送信してみたところリアルタイムに WordPress で投稿が完了していました。めでたしめでたし。

ちなみに環境は下記の通りです。
Wordpress 2.9.2
PHP 5.1.6
Sendmail 8.13.8
 

ktai style PC 向けサイトを訪問しようとしています

少し古い内容になりますが、ktai style で携帯から外部サイトへのリンクをクリックすると「PC 向けサイトを訪問しようとしています」と表示されてワンクッション入ります。これをワンクッション入れずにリンク先を表示させるには、使っているテーマフォルダ内に下記内容を入れた function.phpファイルを用意すればOK。

<?php
/* 直接リンク先へ飛ぶ
*/
function ks_direct_external_link($link_html, $href, $label) {
    return '<a href="' . attribute_escape($href) . '">' . $label . '</a>';
}
add_filter('external_link/ktai_style.php', 'ks_direct_external_link', 90, 3);
?>

WordPress 2.7.1
ktai style 1.7

Home

Return to page top