アーカイブ

Warning: A non-numeric value encountered in … /usceshop.class.php on line 7973

welcart + php7.0環境で下記エラーが出る場合。
(たぶん、ポイントを使用しない設定でおきる)

Warning: A non-numeric value encountered in … /wp-content/plugins/usc-e-shop/classes/usceshop.class.php on line 7973
Warning: A non-numeric value encountered in … /wp-content/plugins/usc-e-shop/classes/usceshop.class.php on line 7979

該当するファイルの
7973行目と7979行目の
$use_point が 文字列として扱われているようなので、

7972行目
$use_point = $entries[‘order’][‘usedpoint’];

$use_point = (int)$entries[‘order’][‘usedpoint’];

に変えてしまえば治るとおおもいます。

BackWpUp 〜ジョブが開始されましたが、10秒間応答しません〜

ジョブが開始されましたが、10秒間応答しません。

Job has started, but not responded for 10 seconds

出回っている情報を一通りためして、

SSLのとリダイレクト絡みの問題とのことなので、.htaccessなど変更

サーバーの自己接続:「応答テストO.K.」

までは出来たのに、未だエラーは消えない。

ということで、プラグインサイトのFAQであっさり解決

 

wp-config.phpに

define( ‘ALTERNATE_WP_CRON’, true );

を追加。

以上

welcart拡張プラグイン「Item List Layout」使用時の非公開設定

WordPressプラグインでショッピングサイトを作るプラグインwelcatの拡張プラグイン「welcart商品一覧レイアウト拡張プラグイン Item List Layout」

ですが、

wcex_item_list_layout/wcex_item_list_layout.php

$ill_query[‘post_status’] = ‘publish’;

部分は、

if ( is_user_logged_in() ) :
    $ill_query[‘post_status’] = array( ‘publish’, ‘private’ );
else:
    $ill_query[‘post_status’] = ‘publish’;
endif;

の方が良いのでは?

と未だ、検証途中ですが・・・

 

オリジナルの状態だと、未公開の投稿が表示されないので、
とりあえず商品を登録してみて、表示を確認するということができない。

ここ別ページは、URLを直接叩けば表示されますが、一覧には表示されないですよね。

 

 

 

WordPress4.5で、Jqueryエラー

WordPress4.5バージョンアップ時のJavaScriptのエラー。

今までは、

$(‘a[href=#page]’).click(function() {

で問題なかった箇所が、

$(‘a[href=#page]’).click(function() {

となります。ハッシュ記号 (#) はクォートされなければいけないということです。

他にもエラーになる箇所があるかも・・・

 

コンテンツを時間指定で編集する

ショートコードを利用して、コンテンツを時間指定で変更する。

【reserve on=”2016-03-30 00:00:01″]指定の時間以降に、この内容が表示される[/reserve]
【reserve of=”2016-03-30 00:00:01″]指定の時間以降に、この内容が消える[/reserve]

※ 【 は [ に書き換えてください

function.php

setTimeZone(new DateTimeZone('Asia/Tokyo'));
$now = $dt->format('Y-m-d H:i:s');
$temp = shortcode_atts(
		array(
			'on' => '0',
			'off' => '0',
		), $temp, 'reserve' );
$start = $temp['on'];
$end = $temp['off'];
$html = '';
if($start !== '0'):
if (strtotime($now) >= strtotime($start)) :
$html .= ''.$content.'';
endif;
elseif($end !== '0'):
if (strtotime($now) < strtotime($end)) :
$html .=  ''.$content.'';
endif;
else:
$html .= '';
endif;
return $html;
}
add_shortcode('reserve', 'my_reservation');

?>

WordPressのアップグレードやFTPのトラブル対策

WordPressのアップグレードに失敗したり

FTPの接続画面が出てきたり

更新中にエラー: wp-content ディレクトリが見つかりません。

と言われたら
wp-config.phpの

/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */
すぐ後に

define(‘FS_METHOD’, ‘direct’);

を一行追加

これを追加することで、ファイルの所有者は、apacheなどになります。

失敗する原因は、phpの設定、FTPサーバーの設定、SSL、ファイルの所有者、など、サーバーやインストール時の環境によって様々なので、ダイレクトにWordPressとphpに任せる設定が楽で、安全かと思います。

wp-config.php
にサーバーのパスなどの情報を追加するという解決策もWEB上にたくさんありますが、
wp-config.phpをHackされたら終わりだなぁ〜と思うのです。
・・・某サーバーで改ざんされてたし・・・

カスタム投稿タイプを、任意に複数、選択してRSSに反映させる

カスタム投稿タイプのフィードを個別に選択して表示したいとき。

たとえば、このサイトは、

「通常の投稿」の他に、カスタム投稿タイプを使って、「製作実績」や「トップのスライド」を管理しています。

「通常の投稿」と「製作実績」のRSSは取得したいけど、「スライド」は取得したくない場合など、フィードを取得するURLのパラメーターで管理できれば楽かも。

 

ということで、ちょっと考えてみた。

コード

function.phpに追加するコード

function my_feed_request($vars) {
 if ( isset($vars['feed']) && !isset($vars['post_type']) ){
 $my_feed_post_type = $_GET['post_type'];
 $my_feed_post_type_array = explode(",",$my_feed_post_type);
 $vars['post_type'] = $my_feed_post_type_array;
 }
 return $vars;
}
add_filter( 'request', 'my_feed_request' );

 

使用方法

通常のRSS取得のURL

  •  https://www.croquis.jp/?feed=rss2&post_type=post

カスタム投稿タイプを、任意に複数、選択してRSSを取得するURL

  • https://www.croquis.jp/?feed=rss2&post_type=post,works

取得したいカスタム投稿タイプのスラッグをカンマ区切りで追加していく

 

 

‘post_type’のパラメーターを使わずに、’my_post_type’とかの独自変数を使った方がいいかもしれないし、パラメーターの存在確認も必要かもしれないけど・・・

 

電話関係のファンクション

WordPressでサイトを作成する際に、
「スマートフォンサイトは作らないけど、ちょっと意識したい。」
そんなときに活躍するコードを紹介します。

①モバイルの判定

まずは、phpで電話出来る端末かどうかの判定。ちょっと適当だけど・・・(^.^)

//モバイルの判定
function mobile() {
$ua = $_SERVER['HTTP_USER_AGENT'];
if ((strpos($ua, 'Android') !== false) && (strpos($ua, 'Mobile') !== false) || (strpos($ua, 'iPhone') !== false) || (strpos($ua, 'webOS') !== false)|| (strpos($ua, 'Windows Phone') !== false)|| (strpos($ua, 'BB') !== false)) {
    // スマートフォンからアクセスされた場合
	return 'mobile';
} elseif ((strpos($ua, 'Android') !== false)) {
    // タブレットからアクセスされた場合
	return 'tablet';
} elseif ((strpos($ua, 'iPad') !== false)) {
    // タブレットからアクセスされた場合
	return 'tablet_notphone';

} elseif ((strpos($ua, 'DoCoMo') !== false) || (strpos($ua, 'KDDI') !== false) || (strpos($ua, 'SoftBank') !== false) || (strpos($ua, 'Vodafone') !== false) || (strpos($ua, 'J-PHONE') !== false)) {
	return 'keitai';
} else {
    // その他(PC)からアクセスされた場合
	return 'pc';
}
}
 

②コンテンツ内の電話番号を電話できるショートコード

電話番号はテキストでも画像でも対応できる

//電話番号リンクにするショートコード
function tel_call($atts, $content = null){
$mobile = mobile();
if($mobile =='mobile' || mobile =='tablet'):
extract(shortcode_atts(array(
        'tel' => 0,
    ), $atts));
return ''.$content.'';
else:
return ''.$content.'';
endif;
}
add_shortcode('tel', 'tel_call');

これでショートコードとして使用可能

[tel tel="0956598587"]☎ 0956-59-8587[/tel]

 

おまけ・・・モバイルだったら改行

//モバイル環境のときにとりあえず改行しちゃう
function mbr(){
$mobile = mobile();
if( $mobile == 'mobile'):
echo '
';
endif;
}

 

 

画像編集の追加

DSCN2546

 

Advanced Image Styles

 

 

 

 

WordPressが4.0になった頃から、TinyMCE Advanced も新しくなり、挿入した画像にマージンや余白を入れると左右均等か、上下均等しか受け付けなくなっていたので、何かいい案はないかと色々探していたのですが、ようやく見つけました!

 Advanced Image Styles

このプラグインを導入すると、WordPress純正の画像編集画面に、マージン設定が出てきます。

 

次のお題は、

「WordPressが画像を挿入すると、<p>タグで囲われちゃう問題」

今のところ、<div>ダグで囲い直すと自動整形に影響しないことは分かってるので、function.phpでなんか対応できそうだと思っていますが・・・