WP プラグイン – Contact Form iii アクセス権がないとき


おそらくWordpress で 最も有名なフォームプラグイン、
Contact Form 7 は高機能だけど、
ヨホ研に高機能フォームは今の所いらないし、CSSとJSを圧縮して軽量化しようとしたら 他とコンフリクトしてしまったので、軽そうな WP Contact Form iii を導入。

ところが プラグインを有効にすると、なぜか
「このページにアクセスするための十分なアクセス権がありません」とか言われちゃったので、

自宅で働く元プログラマーのブログ さま と、
yukari-net管理人のお気楽忘備録 さまを参考に、phpを改変。

1.wp-contactform-iii.php の 295行目あたり、

add_action('wp_head', 'wpcf_css');
add_action('admin_head', 'wpcf_add_options_page');
add_shortcode('contactform', 'wpcf_callback');

の、
add_action(‘wp_head’,
add_action(‘wp_menu’, に変える。

add_action('wp_head', 'wpcf_css');
add_action('admin_menu', 'wpcf_add_options_page');
add_shortcode('contactform', 'wpcf_callback');

2.ついでに おおまかな日本語化ファイル作成。日本語化ファイルは こちら

[languages]フォルダに [ cfiii-ja.mo ] を入れれば完成。
(のちほど追記あり)

3.さらに Hatena さま を参考に、
タイトル記入欄、ウェブサイト記入欄を削除。

78行目あたり、コメントアウト

$fullmsg .= "".__('Website:','cfiii')." " . $website . "\n";

114行目あたりから以下の部分を コメントアウト。

    if(empty($_POST['wpcf_subject']))
    {
        $ok = false; $reason = 'empty';
        $wpcf_strings['subject'] = '<input type="text" name="wpcf_subject" id="wpcf_subject" size="30" maxlength="50" value="* ' . $_POST&#91;'wpcf_subject'&#93; . '" class="contacterror" tabindex="4"/>';
    }

202行目からもコメントアウト。

	<label for="wpcf_website">'.  __('Website:', 'cfiii') .'</label>
	<input type="text" name="wpcf_website" id="wpcf_website" size="30" maxlength="50" value="'. $_POST&#91;'wpcf_website'&#93;  .'" tabindex="3" /> 

	<label for="wpcf_subject">'.  __('Subject:', 'cfiii')  .'*</label>
	'. $wpcf_strings['subject']  .' 

4.もひとつおまけに スパム防止認証機能も削除。

114行目あたりから以下の部分を コメントアウト。

    if(empty($_POST['wpcf_response']))
    {
	    $ok = false; $reason = 'empty';
	    $wpcf_strings['response'] = '<input type="text" name="wpcf_response" id="wpcf_response" size="30" maxlength="50" value="* ' . $_POST&#91;'wpcf_response'&#93; . '" class="contacterror" tabindex="6" />';
	}  

	if (!wpcf_is_challenge($_POST['wpcf_response'])) {
	    $ok = false; $reason = 'wrong';
	    $wpcf_strings['response'] = '<input type="text" name="wpcf_response" id="wpcf_response" size="30" maxlength="50" value="* ' . $_POST&#91;'wpcf_response'&#93; . '" class="contacterror" tabindex="6"/>';
	}

212行目からもコメントアウト。

	<label for="wpcf_response">'. __($question,'cfiii') .'*</label>
	'. $wpcf_strings['response'] .'

   ♨   ♨   ♨   ♨   ♨

と、いろいろやってみたものの、どうにも使いづらい。
なんだか 日本語化したのと実際の挙動が違うし。(訳を間違えてるだけかも??)

なので、ひとまず取り下げです。
It’s a Bone Brake Zone!
(骨折り損!)

その後、BASSINOUE さま を参考に、お問合せページ以外での Contact Form 7の読み込みを止めたりなんだり、という解決策にしましたよ。


この記事の著者

テンダー

ヨホホ研究所主宰の、泣く子も訛る社会派ヒッピー。 電気関係、ウェブ、文章表現、写真、選挙、先住民技術、などが研究対象。 2016年のテーマは、持続可能性の本を書くことと、アウトフローを極めて綺麗にすること。