「WordPress」カテゴリーアーカイブ

WordPressのプラグイン Contact Form 7を使用していてエラーが発生した時のお話


Contact Form 7 がCrome(PC)で実行するとエラーになった

ノウハウツリー管理人の運営する別のとあるサイトにて

WordPressにContact Form 7のプラグインを入れて問い合わせフォームを作っていました。

その時に奇妙な出来事が起こりました。

なんと、スマホとPC(Firefox)からContact Form 7の問い合わせフォームを経由してメールしたところ正常に届くのに、なぜかGoogle Cromeで実行すると失敗してしまうのです。

表示されたエラー

エラー内容
メッセージの送信に失敗しました。間をおいてもう一度お試しいただくか、別の手段で管理者にお問い合わせ下さい。

スマホのSafariなどでは正常に動作するのになんでCromeでは失敗するの???

頭の中が混乱しましたw

そこで開発者ツールでJSなどでエラーが出ていないか確認したところ、JSでエラーが出ていました。

Contact Form 7 でエラーが出た解決策

Custom CSS & JSというプラグインの中でオリジナルのJSコードを記述していたのですが、それがエラーを起こしていました。

深く追いかけていないので自前のJSエラーと今回のコンタクトフォームのメール送信エラーの関係はまだはっきりは分かりません。

とりあえずContactFormを設置したページではそのJSファイルを読み込まない様にしたところ正常に動作する様になりました。

めでたしめでたし。

 

 

 


WordPressで海外スパム業者による人力画像認証の突破対策


英字・数字の画像認証コードでは不十分

これまで本ノウハウツリーには、スパムコメント対策として

SI Captcha Anti-Spam
BWS Plugins
Captcha

などを入れていました。

しかし、全くといっていい程スパム投稿が減りませんでした。

これらのプラグインもスパム投稿対策プラグインとして広く一般的に知られており有名ではあります。

しかし、実際に使ってみたところいまいちでした。

画像認証を人力で突破されまくりだからです。

これらのプラグインも画像認証になっているのでコンピュータプログラムによる自動投稿ではありません。

では、なぜスパム投稿がされてしまっていたのでしょうか?

調べてみたところ

なんとこれらのスパム業者は、バングラディッシュやインドの農村部など人件費の安いエリアで、低賃金で雇われた人間が手動(目視)でコメントスパムを行っている為です。

その為、数字やアルファベットの画像認証が簡単に突破されていたのです。

FaceBookのいいね!YouTueの動画再生数の水増しなどもこれらの海外の業者が手動で行っている様です。

いいね!工場

とも呼ばれていますw

では、WordPressの手動スパム投稿をどうすればブロックできるのか?

業者が手動でコメントスパム投稿を行っている以上、単純(数字・英字)な画像認証を入れたとしても効果はほぼありません。

海外のスパム業者が人を雇って人力で投稿している為です。

その対策として有効なのは、日本語文字列が画像認証として表示されるプラグインを導入する事です。

もっとも日本語画像認証のプラグインは、日本語なので日本人であれば目視・手動でコメントスパムを行う事が可能です。

ですが、バングラディッシュやインドとは違って日本の人件費は最低でも時給1,000円はかかります。

日本でそんなスパム投稿を業者が仮に行ったとしても、日本では赤字になります。

よって日本語プラグインを入れさへすれば海外からのスパム目視(人力)投稿をブロックする事が出来ます。

WordPressでおすすめな日本語画像認証プラグインは何か?

SiteGuard WP Plugin

このプラグインを入れるとOKです。

画像認証コードがひらがなで表示されます。

海外のスパム業者にしてみてもいちいち日本語キーボードに切り替えた上でスパム投稿を行おうとすると非常に効率が悪いです。

こういった低賃金で単純作業を行っている人間自体、そもそも日本語を読めない人が大半です。

海外スパム業者がスパム投稿をするのは数字英字の画像認証コードだけです。

SiteGuard WP Plugin をインストールした時の注意事項

SiteGuard WP Pluginをインストールするとスパム投稿をブロックする事が出来て良いのですが、余計な機能としてWordPressの管理画面のURLまで変更されてしまいます。

これはこれで便利なのですが、ログインURLを書き換えられると
面倒だな~という場合には、

プラグインの設定変更ページを開いて

ログインページ変更 > OFF > 変更を保存

をクリックします。

パスワードに英数字混在の長い文字列を設定している場合には
量子コンピュータでも出来ない限りまず突破されないので
OFFにしておいた方が何かと便利です。

英数字混在で30桁以上を設定しておけばまず安心です。

 

こちらが実際に

SiteGuard WP Pluginで日本語画像認証を入れた画面です。

いい感じで日本語になってますね^^

スパムが壊滅しましたw

おすすめです!

 


WordPressのプラグインwp social bookmarking lightをアップデートしたらエラー発生~対処方法~ 


2017年7月17日にWordpressのプラグイン(wp social bookmarking light)をアップデートしたところ

Parse error: syntax error, unexpected T_STRING in /home/~略~/wp-content/plugins/wp-social-bookmarking-light/wp-social-bookmarking-light.php on line 44

というエラーが出ました。

しかし、バグのあるプラグインを作者がリリースするとも思えず色々と調べてみたら、この原因はレンタルサーバーで使用しているPHPのバージョンが古い事が原因でした。

またPHPのバージョンが古いと wp social bookmarking lightだけではなく、wordpress relational postsも同様のエラーが出てしまいます。

現行で既に古いPHPで動いているWEBサービスがあった為、PHPのバージョンを上げるのは正直迷いましたが、上げてみたところ今のところ問題はありませんでした。

さくらインターネットでPHPのバージョンを変更する

使っているレンタルサーバーがさくらインターネットの場合、簡単にPHPのバージョンを変更する事が出来ます。

サーバコントロールにログインします。

画面左にあるPHPのバージョン選択をクリックします。

PHPのバージョン選択
PHP言語の設定変更はすべて【上級者向け】です。
言語に関する仕組みが理解できない場合は、利用をご遠慮ください。
PHPのバージョンを選択できます。
PHPに関して詳しくわからない、細かなバージョン指定を必要とされない方は、 「推奨」のまま利用し、変更を行わないでください。

という画面が右側に表示されます。

新しいバージョンのプルダウンより標準のPHP[PHP5](推奨)を選択し変更をクリックします。

2017年7月17日時点で、PHP 7.1もありますが、何等かのバグがありそうで怖いのであえてこれは選択しませんでした。

標準のPHP[PHP5](推奨)を選択すると

PHPのバージョンがPHP5.2→ PHP5.6[標準のPHP」(CGI版)に変わります。

以上、こんな感じでPHPのバージョンをアップデートしたところ正常にwp social bookmarking lightwordpress relational postsのプラグインがエラーが出る事も無く最新版になりました。

WordPressでプラグインをアップデートした時に今回の様なエラーは他のプラグインでも十分に起こりえます。

その他のWEBサービスを運用している場合、DB/スクリプトなどのバックアップをきっちり取った上でプラグインの更新をする様にしましょう。

こういったトラブルシューティング方法がネットで検索してもヒットしないのでメモっておきました。

ええなぁ~と思ったら「いいね!」ボタンホンマよろしくな!

 

 

 

 

 

 

 


WordPressにカスタムCSSを導入する方法


カスタムCSSの必要性

WordPressは非常に便利なコンテンツ管理システムです。そして使っているうちにCSS(スタイルシート)を色々とカスタマイズしたくなる事も多いと思います。

通常であれば利用しているテーマ(Theme:正しい発音はスィーム)のstyle.cssを直接いじったりする訳ですが、そうするとテーマがアップグレードされた場合に折角カスタマイズしたスタイルが全てパーになってしまいます。。。そんなトホホな状況にそんな事にならない為にカスタムCSSを使える様にしておいた方が良いです。

テーマによっては最初からカスタムCSSが使える物もある様です。無い場合には、以下手順でプラグインをインストールしておきましょう。

なお、カスタムCSSと呼んでいるのは自分オリジナルのスタイルシートを定義したCSSファイルを作成し、テーマ付属のstyle.cssに一切手を加える事なくオリジナルのスタイルを適用するという意味合いです。ちょっと説明が難しいですが何となくイメージが沸いたでしょうか。

プラグイン Simple Custom CSS and JS のインストール

WordPressのサイドメニュー > プラグイン >  新規追加 > キーワード

Simple Custom CSS

と入力します。

すると自動でプラグインが絞り込まれます。

Simple Custom CSS and JS のプラグインがヒットするので

今すぐインストールをクリックします。

インストールが完了したら有効化をクリックします。

メニュー > プラグイン > インストール済みプラグイン > Simple Custom CSS and JS > 設定

をクリックします。

Add CSS codeをクリックします。

定義するカスタムCSSにタイトルを付けます。名前は何でもかまいません。英数字で分かり易い名前を付けると良いでしょう。

ここでは、

custom_css_test.css 

と入力しました。下枠にCSS(スタイルシート)を定義します。

画面右側のLinking typeでCSSの反映場所の切り替えが出来ます。

ここでは、internalにチェックを入れて更新をクリックします。

カスタムCSSを反映した上で任意のページを開くと、<head>タグの中に定義したCSSが出力されている事が分かります。

 

では、今度はLinking typeをExternal Fileにチェックを入れ更新をクリックしてみます。

ページを開いてみると、

External Fileを選択すると外部ファイルにCSSが定義されている事が分かります。

<link rel=’stylesheet’ id=’2511-css’ href=’http://XXX/wp-content/uploads/custom-css-js/2511.css?v=5622′ type=’text/css’ media=’all’ />

  • External File
  • Internal

のうち、どちらの方法でスタイルを適用させるかは自由ですが、ページロード時の速度などを考えると最終的にはExternal Fileにしておいた方が良いでしょう。

また、Were in site という項目があります。これは定義したカスタムCSSの反映先を

In Frontend → ユーザの見える表側に適用

In Admin → WordPressの管理画面に適用

という意味です。 したがってIn Frontend のままでよいでしょう。

 

 


WordPressでメタ情報が表示される位置を変更する方法


WordPressのテーマ「Twenty Thirteen」において、記事ページに表示されるカテゴリーやタグ、投稿日といったメタ情報の表示位置を変更する方法をご紹介します。
※この記事は「WordPress 4.7.2 」の テーマ「Twenty Thirteen バージョン: 2.1」においてのものです。

変更する方法はいたって簡単です。
「content.php」ファイルにある以下の部分を、表示させたい部分へ移動させるだけです。

<div class=”entry-meta”>
<?php twentythirteen_entry_meta(); ?>
<?php edit_post_link( __( ‘Edit’, ‘twentythirteen’ ), ‘<span class=”edit-link”>’, ‘</span>’ ); ?>
</div><!– .entry-meta –>

 

私は記事ページ上部に表示されていたメタ情報をページ下部へ移動させたかったので、もともと「content.php」ファイルのheader内にあった上記の部分を、同じ「content.php」ファイルのfooter部分(下記)の上に移動させました。

<footer class=”entry-meta”>
<?php if ( comments_open() && ! is_single() ) : ?>
<div class=”comments-link”>
<?php comments_popup_link( ‘<span class=”leave-reply”>’ . __( ‘Leave a comment’, ‘twentythirteen’ ) . ‘</span>’, __( ‘One comment so far’, ‘twentythirteen’ ), __( ‘View all % comments’, ‘twentythirteen’ ) ); ?>
</div><!– .comments-link –>
<?php endif; // comments_open() ?><?php if ( is_single() && get_the_author_meta( ‘description’ ) && is_multi_author() ) : ?>
<?php get_template_part( ‘author-bio’ ); ?>
<?php endif; ?>
</footer><!– .entry-meta –>

WordPressプラグインTable of Contents Plusの使い方


見出しを簡単に作成する事が可能

書籍の目次の様に記事の中に見出しを作成する事が簡単に出来ます。機能が色々とあるので自分用にメモしておきます。

基本設定

位置

どの位置にTable of Contnts Plus を使って生成した目次を表示するかを設定します。最初の見出しの前(デフォルト)で良いでしょう。

表示条件

見出し(h1~h5など)が1記事の中でいくつ使用されている場合に、Table of Contents Plusでレンダリングするかを指定します。デフォルトでは4ですが2にしておきます。

以下のコンテンツタイプを自動挿入

postpage にチェックを入れます。

見出しテキスト

目次の上にタイトルを表示にチェックを入れます。

Contents → 目次

ユーザによる目次の表示・非表示を切り替えを許可にチェックを入れます。

テキストを表示 show → 表示

テキストを非表示 hide → 閉じる

番号振り

目次の見出しの先頭に番号を振る必要が無い場合には、チェックを外します。ただし、一記事の中に複数の見出しがある場合には番号があった方が整理されていて分かりやすいと思いますので、入れておいた方が良いでしょう。

 

スムーズ・スクロール効果を有効化

アンカーリンクにジャンプではなくスクロールする

にチェックを入れると、目次見出しをクリックした時にその位置までスクロールして表示されます。

また。チェックを入れなければ、目次タイトルをクリックするとその位置まで一度に移動します。

 

 


WordPressでシングルクオーテーション「’」やダブルクオーテーション「”」が全角になるのを防ぐ方法


WordPressの標準ではクオーテーションマークは全角で表示される

WordPressでは、シングルクオーテーション」やダブルクオーテーション」を入力して記事を書いて保存した場合、表示した時に全角で表示されてしまいます。通常の日記などではこれらのクオーテーションマークを使う事はありませんが、よく使うSQLやプログラムをWordPressで記述するとコピペが出来なくなってしまい効率が悪いです。そんな場合には、以下の手順を踏む事によって、半角のシングルクオーテーション・ダブルクオーテーションで表示する事が出来ます。

という訳でこれも重要なのでメモっておきます。

function.phpを編集する

ワードプレスの管理画面にアクセス > 左メニュー > 外観 > テーマの編集 >(画面右側に)テーマのための関数

(function.php)があるのでそれをクリックします。

function.phpにずらずらと既に定義済の色々なphpコードがあります。コードの一番下に移動して次のコードを入力してファイルを更新をクリックします。

//半角クオーテーションで表示する。
remove_filter(‘the_excerpt’, ‘wptexturize’);
remove_filter(‘the_title’, ‘wptexturize’);
remove_filter(‘the_content’, ‘wptexturize’);

quote

これでシングルクオーテーション・ダブルクオーテーションで正常に表示できる様になります。

 


WordPressで設定したデータベースのパスワードを確認する方法


WordPressに設定したデータベースのパスワード確認は意外と簡単

さくらインターネットにWordPressをクイックインストールしたのですが、その時に設定したDBのパスワードが分からなくなってしまいました。

さくらインターネットのサーバーコントロール画面に入ってもDB名、DBユーザ名までは見えますが、設定したパスワードはマスクがかかっていて見えません。

db-name

いやーまいったなーと思っていて調べてみたところWordPressのインストール時に設定したDBパスワードを確認する方法が見つかったのでメモっておこうと思います。

DBパスワードの確認方法

WordPressをインストールしたディレクトリに

wp-config.php

というファイルがあります。このファイルを開きます。WinSCPで開こうとすると文字化けしてしまう場合には、ローカルに一旦ダウンロードしてさくらエディタなどで開きましょう。

すると29・30行目あたりに

/** MySQL データベースのパスワード */
define(‘DB_PASSWORD’, ‘XXX‘);

この様な定義があります。XXXがDBに設定したパスワードになります。

 

あとで分からなくならない様にしっかり台帳などにメモっておきましょう!

 

 


WordPressのプラグイン SlimStatをアップデートした後にサイトにアクセス出来なくなってしまった場合の対象方法


WordPressのプラグイン SlimStatのアップデートには要注意!

 

更新日:2016/10/11 16:00

SlimStatのプラグインの自動更新に注意しましょう!現時点で出ているこのプラグインを更新するとWordPressへのアクセスが不能になります。まだ、作者及びWordPressの運営会社も気付いていない様です!寝ぼけて無いでさっさとバグ修正しろや!!と言いたいのですが我慢します。さて、暫定対策はこの画像の通りです。

draft-setting

プラグインの自動更新設定をしているあたなは危険なので今すぐにSlimStatを削除するか、自動更新を停止しておきましょう。

 

WordPressに入れるプラグインは、不定期にそれぞれのプラグイン毎に更新通知が来ます。ただし、作者の評価100%とか書いておきながら実際に更新してしまうとWordPressで作成したサイトにアクセスが出来なくなってしまうという悲劇的な状況に陥ってしまう場合があります。私は、今回実際にそんな不運に遭遇してしまいました。

発生したエラーはこちらです。

Warning: Invalid argument supplied for foreach() in /plugins/wp-slimstat/browscap.php on line 255

 

SlimStatというWordPressに組み込んでアクセス解析を行うことができるプラグインの更新でエラーが発生しました。サイトへの流入キーワードなどを調べる事が出来るプラグインです。無料にしては良く出来ているとは思います。1人で作ってるのでしょうか?だとしたら凄いです。

今回、SlimStatのアップデート通知が来ていたのでアップデートをしたところなんと上記のスクリプトがエラーを吐いてサイトがアクセス不能になってしまいました。スクリプトのエラー箇所などが画面に表示されているのでソースコードを追っ掛けてデバッグをする事も出来なくはないですが、そもそもそんなの作者がやることであって私達ユーザがやることではありませんよね。

という訳でソースコードを修正することなく、SlimStatプラグインの不具合から脱出した時の手順を次項にメモっておきます。

SlimStatプラグインの更新でエラーが出た場合の対処方法

/home/{user_name}/www/{site_directory}/wp-content/plugins/wp-slimstat

{user_name} → レンタルサーバ会社で契約した時に自動で割り当てられる名前で人によって異なります。

{site_directory} → WordPressをインストールしたディレクトリです。これは自由に付けられます。

このパスにwp-slimstatというディレクトリがあります。この中にSlimStatのプラグインのモジュール一式が入っています。この中のモジュールのどれかに問題が起きているので一旦リネームをします。

wp-slimstat   を  wp-slimstat_

にしました。こうすることによってWordPressは、 wp-slimstat を読み込めなくなります。事前に設定した読み込み対象のディレクトリ名が見つからない為です。

正確にはWordPressが認識できないので無視して正常に動作しているプラグインのみを読み取って動作する様になります。

SlimStatが読み込めないというエラーメッセージがアクセス時に画面上部に少し表示されるけれどもアクセスは出来る様になったら

管理画面にログイン > 左メニュー > プラグイン > SlimStatの項目

より

更新 or 削除

をクリックします。

 

今回私は更新を押す事によってしっかりとSlimStatの正常なモジュールがダウンロードされ問題なくWordPressで構築したサイトにアクセスする事ができる様になりました。また、更新をしたところ理由は不明ですが wp-slimstat_ と いう名前にしていたディレクトリは無くなり、替わりに wp-slimstat  が現れました。

私は今回、更新でエラーが出なくなりましたがたまたまうまくいったのかもしれません。少なくともプラグインの更新でこんなエラーを出すくらいなのでSlimStatの更新がちょっと怖くなりました・・・。

更新をしてもトラブルが改善されない場合には、プラグインにバグがあるので削除をして作者がバグを改善するまでの間使わないのも一つの方法です。2~3か月もほっておけば流石にサボり気味なSlimStatの作者も気づいてバグ修正をするでしょうからね。

とまぁーこんな感じで不具合は解消されました。同じ事象にハマったら皆さんもお試しください。

 


EC-CUBE で管理者かどうかを判別し、表示内容を切り替える方法


WordPress の テーマ「Twenty Thirteen」において、固定表示されている検索機能をログイン時のみ表示させる方法をご紹介します。

つまり、一般の閲覧者は検索機能を利用できませんが、管理者のみ検索機能を利用することができるようにする方法です。

今回はWordPress の テーマ「Twenty Thirteen」において、検索機能の非表示化の例を用いて説明しますが、応用すれば様々なカスタマイズが可能になります。是非、参考にしてください。

1. 編集したいテンプレートファイルを開く

WordPress の テーマ「Twenty Thirteen」のメニューに固定表示されている検索機能は「header.php」に記述されていますので、header.php を開きます。

2. 編集したい個所を見つける

WordPressの検索機能は、「get_search_form();」と記述されていますので、検索してみましょう。

もし、検索機能を消したいだけならば、この記述をコメントアウトしてください。

3. コードを書き換える

<?php get_search_form(); ?>

こちらを下記のように書き換えます。

<?php
if (is_user_logged_in()) {
// ログインしている時は、検索機能を表示させる
get_search_form();
} else {
// ログインしていない時は、何も表示させない
}
?>

このようにif文を用いて、ログインしているかどうかを判別し、処理を書き込むことができます。