diviの日本語翻訳バグを修正する方法

diviは世界中の多くの言語に翻訳されていますが、やはり現地の人なみの翻訳を期待するのは厳しいときがあります。

今回気付いたのはメールフォームのエラー文を吐き出す際に「、次のフィールドに入力してください:」と「、」が次のフィールド…の文前に入っているところです。

そんなときに触る箇所をご紹介します。

あなたのURL/wp-content/themes/Divi/includes/builder/languages

ここの「ja.mo」が日本語翻訳ファイルです。
.moの拡張子だとテキスト編集が出来ないので、.moファイルから.poファイルに変更します。

▼.mo→.po .po→.moに変換するサービス
http://tools.konstruktors.com/

あとは該当箇所のテキストを変更して、最初と同様に.poファイルを.moファイルに変換して、サーバーに上書きして完了です。

2019/3/14時点の最新ja.moファイルです。
ja.moファイルをダウンロードする

※ファイルをDLして利用される方はきちんとバックアップをとって、自己責任でご利用ください。
※何かあっても一切の責任は取りません。

wordpress Divi購入

以前からDivi使いの友人にいかにDiviが素晴らしいか聞いていたので存在は知っていたのだけれど、いろいろと実感する場面があり、私も導入することに決めました(笑)

Diviは有料のプラグインで、HTMLの知識がない人でもドラッグ&ドロップでHPを作成することが出来、なおかつ種類豊富なテンプレートが用意されているので、そのテンプレートを基に写真を入れ替えたり、文章を修正したりと至れりつくせりです。

Divi公式HPではDiviを利用したデモサイトをご覧頂くことが出来ます。
https://www.elegantthemes.com/gallery/divi/

 

他ブログのRSSの最新情報をサムネイル付きで表示(WordPress)

今回自分の運営しているwordpressサイトのRSSを取得して最新情報(サムネイル付)一覧を表示したので備忘録としてまとめます。

サムネイル付きというのが案外難しくて、どうもSSL化した無料SSL証明書「Let’s Encrypt」が原因らしいという記事も出回っていましたが、今回表示するサイトも取得したいサイトもLet’s EncryptのSSLを使用していましたが表示出来ました。

やったこと

  1. RSSを取得したいサイトのrssfeedにサムネイルurlを吐き出すようにさせた
  2. 表示したいサイトに取得するタグを打った
  3. 完了

RSSを取得したいサイトのrssfeedにサムネイルurlを吐き出すようにさせた

次のタグをfunction.phpの最後に追加しました。

/* 【RSS】RSS フィードにアイキャッチ画像を表示 */
function rss_post_thumbnail($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$thumbnail_id = get_post_thumbnail_id($post->ID); // アイキャッチ画像の ID を取得
$thumbnail = wp_get_attachment_image_src( $thumbnail_id, ‘medium’ ); // medium サイズの画像情報を取得
$thumbnail_url = $thumbnail[0]; // URL を取得
$content = ‘<p><img src=”‘.$thumbnail_url.'” alt=”‘.get_the_title().'” /></p><p>’.$content.'</p>’;
} else {
$content = ‘<p><img src=”‘.get_template_directory_uri().’/common/images/noimg.jpg” alt=”‘.get_the_title().'” /></p><p>’.$content.'</p>’;
}
return $content;
}
add_filter(‘the_excerpt_rss’,’rss_post_thumbnail’);
add_filter(‘the_content_feed’,’rss_post_thumbnail’);

表示したいサイトに取得するタグを打った

<div id=”toprss”>
<?php
include_once(ABSPATH . WPINC . ‘/feed.php’);
$rss = fetch_feed(array(
‘RSSのURL’
));
if (!is_wp_error( $rss ) ) :
$rss->set_item_limit(5);
$rss->set_cache_duration(1800);
$rss->init();
$maxitems = $rss->get_item_quantity(5);
$rss_items = $rss->get_items(0, $maxitems);
date_default_timezone_set(‘Asia/Tokyo’);
endif;
?>
<ul class=”other_rss”>
<?php if ($maxitems == 0) echo ‘<li>更新情報がありません。</li>’;
else
foreach ( $rss_items as $item ) : ?>
<li>
<?php
echo ‘<a href=”‘ . esc_url( $item->get_permalink() ) . ‘”>’;
if ( preg_match_all( ‘/src=”([^”]*)”/’, $item->get_content(), $image ) ) {
if ($image[1]) {
echo ‘<img src=”‘ . esc_url( $image[1][0] ) . ‘” alt=”no title”/>’;
}
}
echo ‘</a>’; ?><br>
<?php echo $item->get_date(“Y年n月j日”); ?><br><a href='<?php echo $item->get_permalink(); ?>’ target=”_blank”>
<?php echo $item->get_title(); ?></a>
</li>
<?php endforeach; ?>
</ul></div>

以上です。

一応「$rss->set_cache_duration(1800);」で60秒×α分=1800(今回α=30分)で、通常12時間ほどかかるキャッシュを早めに取得するようにしているのがミソです。
それでももし取得に時間がかかっていると感じた場合はwp-includes/feed.phpを開き

$feed->set_cache_duration( apply_filters( ‘wp_feed_cache_transient_lifetime’, 12 * HOUR_IN_SECONDS, $url ) );

$feed->set_cache_duration( apply_filters( ‘wp_feed_cache_transient_lifetime’, 1800, $url ) );

に変えてみてください。

【注意】Google+の機能を2019/4/7までにHP上から撤去してください

Googleより先日メールが来ました。
内容としてはGoogle+の終了に伴い、HP上からGoogle+に関連するコードを削除してください、とのことでした。

おそらくSNS関連のツールだと思いますが、いくつか運営しているサイトのチェックをしないといけないので大変です。
皆様も自分のHPやブログをお持ちの方で下記の機能をつけている方はお気をつけください。

ボタン(などが含ま+1ボタン 、 フォローボタン 、 ハングアウトボタン 、およびシェアボタン )、 バッジ 、およびインタラクティブな投稿

Warning: Use of undefined constant php – assumed ‘php’ (this will throw an Error in a future version of PHP) in

いよいよ2018年をもってPHPのバージョン5.X~はサポートが切れましたね。
そこでwordpressのPHPのバージョンを7.2など最新版にされる方が多いと思います。

今回はバージョンアップしたことで出たエラー文をまとめたいと思います。
ちなみに出てきたエラー文はこれ。

Warning: Use of undefined constant php – assumed ‘php’ (this will throw an Error in a future version of PHP) in ~~

これは何が原因だったかというとファイルの始まり文が<?php?>になっていたことです。
厳密には<?php ?>とphpの後ろに半角スペースがなかったことでエラーが出ました。

きっ、きびしい…!
手直しするサイトがいくつか出てきそうです。

WordPressでPHP 5系を使用している人は注意

PHP 5系のサポートは2018年末で終わります。

https://secure.php.net/supported-versions.php

PHP 5.6は2018年末にサポートが終了します。
PHP 7.0は既にサポートが終了しています。

レンタルサーバーによっては管理画面からPHPのバージョンを切り替えることができる場合があります。その場合はPHP 7.2など、なるべく新しいバージョンに変えた方が良いでしょう。

wordpressの記事を最初から「テキスト」にする方法

wordpressの管理画面で投稿記事や固定ページの更新や新規記事を書くときに困ること。

それは初期設定の「ビジュアル」。

ビジュアルエディタはHTMLを変形させる癖があるので、出来るだけ避けたいんですよね。
というわけで、それを回避するための設定をします。

テーマのfunctions.phpに下記のように記載します。

add_filter( ‘wp_default_editor’, create_function( ”, ‘return “html”;’ ) );

これでビジュアルを避けることが出来ます。

ちなみにテーマの更新でfunction.phpが元に戻るので毎回変更するなど気をつけてください。

WordPress 用プラグイン Google XML Sitemaps におけるクロスサイトスクリプティングの脆弱性

4.0.9 およびそれ以前のWordPress 用プラグイン Google XML Sitemaps には、クロスサイトスクリプティングの脆弱性が存在します。
最新状態にアップデートしてください。
https://jvn.jp/jp/JVN27052429/?fbclid=IwAR3YXK4gyRiCFufqmmOjbQOcIef0ZQFSCfwAuKWCsmxOuLJ_nPJJddSzXHQ

影響

当該プラグインを使用している WordPress サイトを複数の管理者が共同管理している状況で、悪意を持った管理者が細工した入力を行うことで、他の管理者がプラグイン設定ページにアクセスした際に、ウェブブラウザ上で任意のスクリプトを実行される可能性があります。

wordpressサイトで常時SSL化した手順2/2[エックスサーバー]

サーバー側での作業が終わったので、今度はwordpress側での設定作業を行います。

管理画面の「設定」>「一般」の URL を 2 ヶ所「http://~」→「https://~」に変更します。

「変更を保存」をクリックすると自動的にログアウトするので、再度ログインしましょう。

Search RegexでURL一括置換する

今まで書いてきた記事や固定ページのなかにある内部リンク・画像リンクを修正します。

[プラグイン]>[新規追加]から「Search Regex」を検索して、インストール&有効化します。

有効化したら、[ツール]>[Search Regex]に入り、「http://自分のドメイン」を「https://自分のドメイン」に一括置換します。

①ボタンで変更箇所を確認し、問題なければ②ボタンで一括置換をします。

次に「http://」を入力して[Search]を押します。
そうすると外部のURLが出てきますので画像など読み込んでいるものがあればhttps化してるか外すかして対応します。

ウィジェットやプラグインも外部画像など設定していないか「http://~」で始まるものは全て確認してください。
ちなみに私はAll in one SEOのSNS向けの画像がhttp://~になっていました。

WordPressテーマをチェックする

WordPress テーマ内で、自サイトの URL が直接記述されているところがないかチェックします。
画像やscriptを読み込んでいる部分などがあれば、すべて「https」に変更していきます。
主にheader.phpやCSSで直リンクしているものが私はヒットしました。

こちらも「http://」で検索すると外部のURLが出てきますので画像やscriptなど読み込んでいるものがあればhttps化してるか外すかして対応します。

最終チェック

全てのページのアドレスバーが「保護された通信」と表示されているか確認して終了です。

wordpressサイトで常時SSL化した手順1/2[エックスサーバー]

かねてから予告されていた通り、2018年7月からGoogle Chrome(グーグルクローム)ブラウザではSSLに対応していない「http://」で始まるすべてのWebサイトでURLバーに目立つように警告が表示されるようになります。

この関係でHPをSSL化してほしいという依頼が増えてきているので、実際に自分のサイトをSSL化してみた手順をまとめてみました。

ちなみに下記サイトで警告が出るサイトかどうかを調べることができます。
https://www.websecurity.symantec.com/ja/jp/support/ssl-checker

エックスサーバーでの設定

サーバーパネルのドメイン>「SSL設定」をクリックします。

ドメインを確認し、選択するをクリック。

「独自 SSL 設定の追加」タブをクリック。
再度ドメインを確認し、右下の「独自 SSL 設定を追加する(確定)」を押して終了です。「CSR 情報(SSL 証明書申請情報)」のチェックボックスは空欄で問題ありません。(ちなみに画像では(設定済)とついていますが通常は出ませんので気にしないでください←すでに設定した後でキャプチャ取ったため)

これでサーバー側の設定は終わりですが、すぐに「https://~」を見ても以下のような画面が表示されるだけです。

設定完了まで 30 分 ~ 1 時間ほどかかり、その後サイトが表示されるようになります。
「https://~」でサイトが表示されるのを確認してから次の作業に移ってください。
表示される前に WordPress 側で作業してしまうと、サイトが真っ白になって管理画面に入れなくなることもあります。

常時SSL化

独自SSLの設定が完了した時点では、自動的に「https://~」のURLへ転送されません。
Webサイトにおけるすべての表示を常時SSL化する場合は、「.htaccess編集」で以下の記述を追加します。

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

「http://~」のURLでアクセスした際、自動的に「https://~」のURLへ転送されていれば設定完了です。