Home

WIZ-WORDPRESS│EC-CUBE-LABO

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

TinyMCE AdvancedとPS Disable Auto Formatting

TinyMCE Advanced で Stop removing the <p> and <br /> tags when saving snd show them in the HTML editor にチェックを入れてもうまくいかない場合がある。

そして、特殊な属性(例えば、td に nowrap="nowrap" )を設定しても無視されて本文に反映されない。

そこで、PS Disable Auto Formatting というプラグインを入れることによってこの問題が解決した。

このプラグインの説明

WordPressの段落自動整形(wpautop)を停止させると共に、ビジュアルエディタが生成するhtmlソースを改変。HTMLモードでの編集時に、意図しないbrタグ、pタグの除去、pタグの付加が発生しないようにすると共に、ビジュアルモード編集時における意図した通りの自然な改行・段落の生成を実現します。

このプラグインのサイトはこちら>>

fckeditor-for-wordpress-pluginのcssをカスタマイズ

WordPressで記事を作成・編集する際に fckeditor-for-wordpress-plugin を最近使っている。

デフォルトでスタイルがいくつか用意されているが、もっとスタイルを追加したかったので調べてみました。

編集するファイルは、

/plugins/fckeditor-for-wordpress-plugin/ckeditor/plugins/stylescombo/styles/default.js

たとえば、スタイルシートで使う clear: both; を追加したい場合、下記のコードを適当な場所に入れてやります。

{name:'Clear both',element:'p',styles:{'clear':'both'}}

こんな感じです。

fckeditor-for-wordpress-plugin のバージョンは 3.1.1。

WordPress 2.8.6 で確認。:P

Googleカレンダーを入れてみる

Googleカレンダーを入れたテストです。

簡単に入れることができるので、これは使えます!

詳しくはまた後日レポートします。

My Category Order の設定

サイドバーのカテゴリーの順番を自由に入れ替えるためのプラグインだが、少し注意が必要。

まずここからMy Category Order をダウンロードする

  1. プラグインフォルダにアップロードし、プラグイン管理で「使用する」をクリックして有効にする。
  2. wp-includes/taxonomy.php のパーミッションを 666 にする。
  3. sidebar.phpのカテゴリー表示部分を次のように変更する。
    <?php wp_list_categories(‘orderby=order&title_li=’); ?>

My Category Order はウィジェットにも対応しているのでウィジェットを使うときは適宜設定する。

ドラッグするだけで簡単にカテゴリーの順番を変えれるのですごく便利だ。

EC-CUBE サブカテゴリーを最初から表示する

Aカテゴリー(サブカテゴリーあり)
Bカテゴリー(サブカテゴリーなし)
Cカテゴリー(サブカテゴリーあり)

上記のようなカテゴリーを持つ場合、通常サイドバーに表示されるカテゴリーのリストは親カテゴリーのみで、AカテゴリーをクリックするとAカテゴリーのサブカテゴリーが表示される。

いちいち親カテゴリーをクリックしなくてもサブカテゴリーを表示させたい場合、カテゴリーブロックの下記の部分の赤文字の部分を削除すればいい。

<!–{section name=cnt loop=$arrTree}–>
<!–{* 表示フラグがTRUEなら表示 *}–>
<!–{if $arrTree[cnt].display == 1}–>
<!–{assign var=level value=`$arrTree[cnt].level`}–>
<!–{assign var=levdiff value=`$level-$preLev`}–>
<!–{if $levdiff > 0}–>
<ul>
<!–{elseif $levdiff == 0 && $firstdone == 1}–>
</li>
<!–{elseif $levdiff < 0}–>
<!–{section name=d loop=`$levdiff*-1`}–>
</li>
</ul>
<!–{/section}–>
</li>
<!–{/if}–>
<li><a href=”<!–{$smarty.const.URL_DIR}–>products/list.php?category_id=<!–{$arrTree[cnt].category_id}–>”<!–{if in_array($arrTree[cnt].category_id, $tpl_category_id) }–><!–{/if}–>><!–{$arrTree[cnt].category_name|escape}–>(<!–{$arrTree[cnt].product_count|default:0}–>)</a>
<!–{if $firstdone == 0}–><!–{assign var=firstdone value=1}–><!–{/if}–>
<!–{assign var=preLev value=`$level`}–>
<!–{/if}–>


EC-CUBE カテゴリー一覧のタイトルをカスタマイズ

サブカテゴリーの一覧を表示した場合、そのページのタイトルの部分には親カテゴリー名しか表示されない。

これを、

親カテゴリー名|サブカテゴリー名|サブサブカテゴリー名

のように表示させるには、

/data/class/pages/products/LC_Page_Products_List.phpの111行目を下記のように書き換えます。

//$tpl_subtitle = $arrFirstCat['name']; デフォルト行をコメントアウト
$tpl_subtitle = $objDb->sfGetCatCombName($arrCategory_id[0]);//追加行

カテゴリーとカテゴリーの間に“|”が入りますが、これを取り除く方法はわかってないです。

Home

Return to page top