2017年1月13日金曜日

【備忘録】WordPress 4.7.1 よりメディアアップロード時のMIMEチェックにファイル本体のチェック機能が付与されていた・・・

あれ、PDFやPPTXがアップロードできなくなってる、、、って思って調べてみた所、つまりはそういうことだったのです。風邪引いてフラフラなのにマイナーバージョンアップで久々にデカイ変更されたなーという感じです。

wp-include/functions.php
2323行〜2333行 ( wp_check_filetype_and_ext 関数内)


のコードが、付与されていたってことです。

何が違うの?

2016年12月28日水曜日

【備忘録】WordPress で特定カテゴリーに限定した月別アーカイブの出し方

特定カテゴリの月別アーカイブを表示したいです(WordPerss.org フォーラム)に触発されて、久々にSQL文にチャレンジしたと思っていろいろやっていたら出来たようなので、メモっておきます。なお考えたのはデータの取得までで、表示は上記フォーラムのものをそのまま使っています。

最初にコード全体を見せて、次にそれぞれの説明をしていきます。

参考情報




コード


青文字が考えた部分です。それ以外は変更していません。

<?php // カテゴリーなし(slug名)のみの月別アーカイブ表示

$year_prev = null;
$slug = 'カテゴリーなし';

// 日本語のエンコード処理
$slug = urlencode($slug);
// エンコードした場合、%が入る。SQLでは %は %% とエスケープが必要
if(preg_match("/%/", $slug)):
  $slug = str_replace('%','%%', $slug);
endif;

// SQLクエリ
$query = $wpdb->prepare("SELECT DISTINCT MONTH( post_date ) AS month ,
YEAR( post_date ) AS year,
COUNT( id ) as post_count FROM $wpdb->posts
WHERE post_status = 'publish' and post_date <= now( )
and post_type = 'post'
and id IN(
SELECT object_id FROM wp_term_relationships
WHERE term_taxonomy_id = (
SELECT term_taxonomy_id FROM wp_term_taxonomy AS tt
INNER JOIN wp_terms AS tm ON tt.term_id = tm.term_id
WHERE tm.slug = '%s'

)
GROUP BY month , year
ORDER BY post_date DESC",$slug);


$months = $wpdb->get_results($query);

foreach($months as $month) :
$year_current = $month->year;
if ($year_current != $year_prev){
if ($year_prev != null){?>
</ul>
<?php } ?>
<h3><?php echo $month->year; ?></h3>
<ul class="archive-list">
<?php } ?>
<li>
        <a href="<?php bloginfo('url') ?>/<?php echo $month->year; ?>/<?php echo date("m", mktime(0, 0, 0, $month->month, 1, $month->year)) ?>"> <span class="archive-month"><?php echo date("n月", mktime(0, 0, 0, $month->month, 1, $month->year)) ?></span> </a>
</li>
<?php $year_prev = $year_current;
endforeach; ?>
</ul>

以下、青色部分について説明していきたいと思います。

2016年12月8日木曜日

【備忘録】StaticPress プラグインを BASIC認証下の WordPress サイトで利用する場合の注意点

まぁ既出の問題らしいのですが、プラグイン本体の書き換えが必要なので、その方法をメモ。問題は下記で報告しておきました。


問題


WordPress 4.7で確認。
Basic認証しているサイトの場合、 StaticPress の BASIC認証のオプション設定をしたとしても、HTMLファイルが出力されない。

修正


includes/class-static_press_admin.php

static public function basic_auth(){
// return get_option(self::OPTION_STATIC_BASIC, false);
return 'ID:PASS(BASE64への変換が必要)';
}

と直接 BASIC認証のデータを ID:PASS でBASE64エンコードで入れるというもの
Macをお使いなら、ターミナルから

echo 'hogehoge:hogegegege' | base64

でBASE64エンコードできます。
あるいは
などのウェブサービスをつかうとよいです。

2016年12月8日 @kimipooh

2016年11月25日金曜日

【備忘録】MAMP で WP-CLIコマンドを叩くと、「Error: APCu is not configured correctly.」とでちゃう!?

ちょっと引っかかったので備忘録としてメモ残しておきます。

wp-content/object-cache.php を削除せよ


サーバーの WordPress を MAMP へ落とし込む時に遭遇するかもしれません。
サーバー側の PHP が APCuモジュールを有効にして、かつ WordPress 側に 「APCu Object Cache Backend」をいれていた場合ですね。

このプラグインは
  • wp-content/object-cache.php 
に手動インストールするので忘れがちです。
MAMPを利用する場合には、このファイルを削除しておいてください。

2016年11月25日 @kimipooh

2016年11月12日土曜日

第二回 Global WordPress Translation Day に参加して(WordBench 大阪) 11/12 #wordpress #wbosaka

第一回目は、第52回 WordBench 大阪に参加&発表して・・・ #wordpress #wbosaka で4月に開催されました。前回は日本から4つの地域コニュニティが参加し、今回は5つの地域コミュニティが参加します。


   WordBench 大阪(株式会社ファーストサーバー・会議室)
 (360度カメラの撮影データ

 WordBench 京都


 WordBench男木島


翻訳したもの

  1. Login Security Solution | 翻訳データ(Readme除く)| 承認権限ゲット | 完了
  2. Contact Form DB | 翻訳データ(Readme除く)| 完了
  3. WP Mail Smtp Mailer | 翻訳データ(すべて)| 承認権限ゲット | 完了
  4. Google Apps Login | 翻訳データ(Readme除く)| 承認権限要求中→ゲット | 完了

1. Login Security Solution


総当り攻撃や一定時間が過ぎたら自動ログアウトさせるなど、セキュリティ系プラグイン

2. Contact Form DB


Contact Form 7で送信されたデータを、WordPress上で表示したりエクスポートしたりするプラグイン。日本語版 Excel用のCSV(Shift-JIS)への出力は筆者コードをマージしてもらった。

3. WP Mail Smtp Mailer


WordPress からメール送信する時に、外部のSMTPを利用するためのプラグイン。
WP Mail SMTP が有名だが、現時点で9ヶ月間更新されていないので、ここ最近更新されているプラグインに切り替え。AMIMOTOにおいた WordPress で昨日から使い始めました。

4. Google Apps Login


Google アカウントで WordPress にログインするためのプラグイン。

発表するはずが・・・

2016年10月21日金曜日

【備忘録】カスタム投稿で記事コピー出来るプラグイン Duplicate Post が動かなくなった!?

ここ最近バタバタしていて使っていなかったのですが、あれ?下書きモードで記事をコピーできる「新規下書き」がなくなってるなと気づきました。

Duplicate Post プラグイン 3.0.0 の新機能の問題か


3.0.0 より、Duplicate Post の設定内の権限項目が付与され、投稿タイプによってこのプラグインを有効無効にできるようになりました。どうやらデフォルトは、投稿と固定ページのみのため、カスタム投稿はOFFになっていたのが原因でした。

すべてのサイトでは検証していないので、特殊な要因かもしれませんが、ここ最近 Duplicate Post プラグインがカスタム投稿で動かないな−と思ったら、設定をご確認あれ〜

2016年10月21日 @kimipooh


2016年9月21日水曜日

「nginx + リバースプロキシキャッシュ」において、User Agent ベースでテーマ切り替えやスマホ対応している場合の問題

随分前からある Tipsのようですが、nginx に移行して初めて遭遇したので、備忘録として残しておきます。まぁ遭遇したサーバーが網元(AMIMOTO)さんだったので、サポートに問い合わせたら件名の可能性について回答してくださったので手間取らずに済みました!

最近はレスポンシブ・ウェブ・デザインでスマホ対応していたので、気づいてなかったのでしょうね...

スマホ対応には、いろいろ方法はあると思いますが、まぁデザインやレイアウトに疎い私が把握・理解できる範疇では下記の2つぐらいかなーと思います。それぞれ nginx + リバースプロキシ配下でどう対応するかをメモっておきます。

1. レスポンシブ・ウェブ・デザイン


対応の必要なし

2. User Agent にて表示変更


モバイル判定したものについては、キャッシュを削除する必要あり。
Nginx でモバイル判定させ、その情報をもとにリバースプロキシキャッシュを削除するということになりますね。一番簡単なのは

  1. Nginx Cache Controller プラグインの導入
  2. nginx設定に、モバイル判定設定を組み込む
     参考:[WordPress] nginxでモバイルとPCでテーマを分ける方法(Qiita)
  3. テーマの functions.php にNginx Cache Controller を使ってモバイル用のキャッシュを削除するフィルタを追加
     参考:網元で WPtouch を使用する際の設定(網元)

当方は、WPtouch Mobile Plugin が利用されていたサイトだった事、網元をつかっていたので、まさにこのヘルプをみて解決できました!! 


3. User Agent でテーマ変更


これも基本は「2」と同じですが、便利なプラグインがあります。
  1. Nginx Cache Controller プラグインの導入
  2. nginx設定に、モバイル判定設定を組み込む
  3. Nginx Mobile Theme プラグインを使って利用する
どう設定するかは、上記2つのプラグイン作者のサイト

2016年9月21日 @kimipooh