WPのContactForm7が文字化けする

スマイルサーバのver4に移動してから、WordpressのContactForm7で送ったメールが文字化けするという現象が起こりました。

正確には、メールフォームで入れた項目が「????」という文字化けをし、そのほか設定した文字(たとえば、「このメールは●●サイトのお問い合わせから送っています」などのテンプレートの文字)は文字化けしていません。

ContactForm7の文字化けについては、いろいろと記事がありましたが、そのうちの

Contact Form 7で送るメールの文字化けが直らない

php.iniのmbstring.encoding_translation = OnをOffにしたら文字化けしなくなりました。

が参考になりました。

実際に、phpinfoでサーバ情報を見ると、「mbstring.encoding_translation」は「On」でした。

ただ、その設定をするとうまくいくのですが、「On」になっていたのを「Off」にするのは少々抵抗があります。

そのほか見ていて、

mbstring.encoding_translationが原因で文字化け

での設定がよさそうです。

スマイルサーバの「php.ini」は「.user.ini」である必要があるので、そのファイルに

mbstring.http_input = UTF-8

mbstring.internal_encoding = UTF-8

mbstring.substitute_character = "?"

を記入して、文字化けは防げました。

WordPress4.8にアップデートしたらFailed to load content css: (省略)editor-style.cssと出る件

WordPress4.8から、テーマとブラウザによっては、投稿用のビジュアルエディターにしたときに

「Failed to load content css: (省略)editor-style.css」と出るようになった。

ビジュアルエディターにスタイルシートを効かせたい場合、function.phpに

add_editor_style(‘editor-style.css’);

と記述して、適応させるthemeのフォルダにいれたeditor-style.cssを読み込ませたり、「tinymce-advanced」の設定で「editor-style.css」を読み込ませたりしていたのだけども、それがどちらの方法でも引っかかる。

また、ブラウザはGoogleChromeのときに出るような気がしている。

手っ取り早い解決方法として、「editor-style.css」に「import」を利用して、相対パスで別のcssファイルを読み込ませていたので、それを絶対パスに変更した。

ブラウザやサーバやテーマの作り方によって出たりでなかったりするというところは、まったく解決していないが、とりあえず。

xamppのphpmyadminで「Unknown collation: ‘utf8mb4_general_ci’」と出たら。

他のバージョンのxamppを起動させたりしているうちに、
いつも使うxamppのphpmyadminに
「Unknown collation: ‘utf8mb4_general_ci’」
とうエラーが出ました。

ブラウザのキャッシュやクッキーを削除したら治りましたので、報告しておきます。

ContactForm7の4.2が、絵文字プラグインの表示に影響

絵文字プラグイン「TypePad 絵文字 for TinyMCE」を利用させていただいているのですが、編集時に絵文字のアイコンをクリックしても、絵文字リストの表示に500エラーがでます

いろいろ調べていましたら、過去に「ContactForm7」のバージョンアップで出たエラーと状況が似ていました。

ここに書き込みあり→http://www.picmo.net/blog/linux/wp-plugin/typepad-tinymce/

「ContactForm7」は6/7に4.2にバージョンアップしていて、確かにそれに合わせてバージョンアップしました。

確かに「ContactForm7」を入れていないWordpressでは「絵文字リスト」は問題なく表示されます

ためしにダウングレードしたら「絵文字リスト」は表示されるようになりました。

取りあえず時間ないので、ContactFormのバージョンアップの何がひっかかったのかとかは、調べてませんが「ContactForm7」の次のバージョンアップで、忘れないように検証せねば……

※絵文字って使ってみると、やっぱり雰囲気変わるなぁ 技術系の記事にはうっとうしいだけか

Types1.6.5.1で日付のバリデーションが効かない

Types1.6.5.1のカスタムフィールドで、日付を使っている場合、「有効なデータをご入力下さい」というのにチェックを入れている場合、いくらカレンダーの機能を使ってデータを入れても「有効なデータでない」というエラーが出ます。

この日付のバリデーションのチェックを外すとうまくいくので、検証のプログラムで何か問題が発生しているのかなと思います。

同じことが掲示板にもありました。

Date field not working anymore on 1.6.4

カスタムタクソノミーの記事一覧で、はまったこと

カスタム投稿で、カスタムタクソノミーを設定して、そのタクソノミーのタームの新着5件ずつ表示するページを作りたかったときに

<?php
global $post;
#イベント告知の情報を取ってくる
$args = array(
  'post_type' => 'event',//カスタム投稿
  'taxonomy' => 'eventinfotype',//タクソノミー
  'term' => 'eventkokuchi',//タクソノミーのファイル名
  'numberposts' => 5
);
$kokuchi = get_posts( $args );
?>
<ul>
<?php
if($kokuchi){

foreach($kokuchi as $data):
?>
<li><div class="news-date">開催日:<?php echo date('Y年n月j日(D) Ag:i', post_custom('wpcf-startday')); ?>
<?php if(post_custom('wpcf-endday')){?>~<?php echo date('Y年n月j日(D) Ag:i', post_custom('wpcf-endday')); }?></div>
<div class="news-title"><a href="<?php the_permalink(); ?>"><?php the_title();?></a> <span class="entryday">(情報更新日:<?php the_time('Y年m月d日'); ?>)</span></div></li>

<?php endforeach;
}else{
?>
<li>現在予定しているイベントはありません。</li>
<?php
}?>
</ul>

というソースを書いていたら、なぜか、同じ記事の繰り返し。

なんでだろう……と思っていたら

foreach($kokuchi as $data):

の$dataは$postでなくてはいけなかったです。

参考記事

WordPress関数:get_postsと$postとsetup_postdata()について

$postだと大本のデータをつぶしてしまうような気がして、かえちゃったんですが、そこには意味があったんだなぁと思いました。

 

ちなみに、タクソノミーごとの記事一覧とかで参考にしたページはこちら

WordPress タクソノミー、ターム、投稿タイプや著者を特定した記事一覧の出力方法(サムネイル出力含む)

WordPressプラグイン「Post Expirator」が動かないとき

WordPressの記事に期限を付ける時、お世話になっています「Post Expirator」

プラグインはこちら→
翻訳ファイルでお世話になってるのはこちら→

「動かない」ということで検索をすると「時間の設定が日本時間ではないから」という回答をよく見かけるのですが、

【参考記事】WordPressでPost Expiratorがインストール直後に動作しない理由と対処方法 (ありがとうございます)

それでも動かない。ローカルだと動くのになぁ……と思っていたら、
もしかしたら、もう初歩的すぎる知識なのかも知れなくて、恥ずかしいのですが……

テスト運営だったので、Basic認証をかけていたからでした。試しに一瞬Basic認証を外したら、ちゃんと動いていました。

facebookの「いいね」が作動しないのも、Basic認証かけてるからだったりして、なんだかとっても恥ずかしいです。

ちなみに、facebookの「いいね」の問題は

【参考記事】 Basic 認証中のページで OGP のテストをする (ありがとうございます)

に書いてありましたが、それは試してみたけどうまくいかず。あんまり時間もかけられなかったので、一時Basic認証をはずしてみるということで対応し、追跡で調べてません。ごめんなさい。

さくらのサーバーで、WordPressがInternal Server Error【未解決】

さくらインターネットの共用レンタルサーバーを超愛用しております。

しかし、Wordpressで投稿を行うと、必ず「Internal Server Error」と出ます。
でも、投稿できるし、気にしてなかったんですが、ちょっと気にして調べてみました。

wordpressでコメントしたらInternal Server Errorになってしまう時の対処法

という記事をみて、コメントじゃないけど、まぁ、見てみようかなぁと思って、
「設定」>「ディスカッション」のページを開いてみると、もう「ディスカッション」のページで、Internal Server Error。

さすがにおかしいなぁ……と思ったので、さらにコメントとか投稿とか関係なく「さくら Internal Server Error」で調べてみると、

さくらサーバーでWordPressをインストールすると「Internal Server Err」

という記事を発見。まぁ、インストールじゃないけど……と読むと、「権限」の問題らしい。
なんか、「権限」なら他のことにも影響してそうだし、見てみようと思ったら、wordpressのファイルを入れているフォルダを「705」で指定していました。
これを「755」にすると、ディスカッションのページのInternal Server Errorがなくなりました。

まぁ、投稿はいまだに「Internal Server Error」 さらに調べます。

ちなみに、今のところ
さくらのレンタルサーバ+WordPressで500エラーが多発

という記事を読んだところです。 メモリ不足というのは、あんまり考えてなかったなぁ・・・。
また引き続き調査します。

wordpressでprettyphotoやlightboxやFancyboxがうまく動かなかったので…

作成したオリジナルテーマ自体が既にjqueryが入っていて、そのうえ、pluginでprettphotoやlightboxやfancyboxを入れようとすると、うまく動かない。

もともとのオリジナルテーマがもってるjqueryとpluginでいれるjqueryが競合しているんだなぁと思って、いろいろ対策をしてみた。

1.pluginのjqueryを読み込ませない。

functions.phpに以下のソースを埋め込んで、読み込ませないようにした。


function load_cdn() {
	if ( !is_admin() ) {
	wp_deregister_script('jquery');
	}
}
add_action('init', 'load_cdn');

if(!is_admin())で、管理画面ではちゃんとjquery読ませるのがポイント。

だけど、うまく動かなかった……。

2.テーマに直で読ませているjqueryを削除する

これもうまくいかなかった……。

3.plugin「FancyBox for WordPress」を使用する。

FancyBox for WordPress」です。
このpluginの嬉しかったところは、設定で「トラブルシューティング設定」というのがあって、「jQueryの起動スキップ。jQueryが2度起動される場合だけ使用 (初期値: off) 」にチェックを入れると競合を防ぐことができるということ。

1のjqueryの読み込みをやめさせるのをやめて、このチェックをしたら競合せずに動くようになりました。

1.の設定をした「FancyBox for WordPress」の使用では、競合して動きませんでした。1.のjqueryの読み込みをやめさせるのと、3.のjQueryの起動のスキップとではどう違うのだろう……。

worspressカスタム投稿タイプのページ送りで、最後のページがnotfoundになる件

カスタム投稿タイプで「photo」を作成し、記事を入れていきます。
テンプレートは「archive-photo.php」を用意しました。
ページ送りが必要なので、以下のスクリプトを追加しました。

have_postsの前に、

<?php 
		$paged = get_query_var( 'paged' );
 		$args = array_merge( $wp_query->query, array( 'posts_per_page' => 5 , 'paged' => $paged ) );
		query_posts( $args );

		if ( have_posts() ) : ?>

end ifのあとに

<?php
      posts_nav_link();
      wp_reset_query(); ?>

ページ送りは一見うまく行きましたが、最終ページに、「not found」のエラーが出ました。

いろいろと調べてみましたが、この記事に書いてある内容がどんぴしゃでした。ありがとうございます。
[WordPress] query_postsでwp_pagenaviがうまく機能しない

「設定」>「表示設定」の1ページあたりの記事数は「10」で、アーカイブで指定したのは「5」でした。
記事数がアーカイブで指定した数よりも大きかったので、エラーが出ていたようです。これを記事数を「4」にすると、最後のページにも記事が表示されました。

ただ、参照ページでは「同じ数だとエラーが出る」とありましたが、私がためしたところ同じ数でもエラーはでませんでした。
「表示設定」の1ページあたりの記事数は「5」で設定しています。

いろいろと調べたページ

indexページのカスタム投稿のページングでnot found
テンプレートタグ/posts nav link
[WordPress] query_postsでwp_pagenaviがうまく機能しない