[WP] 子テーマ設定でWebフォントを使う

結構前に利用していたWordpressのプラグインの「wp-tegaki」。
長い間、更新されていないし、利用PHPのバージョンを7.1に上げた(*)際に、エラーで管理ページも開けなくなったので代替としてWebフォントを使うことに。
(* サーバーはさくらインターネットを利用しています。)

WordPressでは星の数ほどテーマはありますが、配信されているテーマをそのまま使うことはほとんど無く、カスタマイズした「子テーマ」として利用します。

子テーマ自体は他のサイトで沢山
[ 子テーマ – WordPress Codex 日本語版 ]


子テーマの設定

子テーマが実装された当初は style.css に親のstyle.cssを @import で読み込むことが定番だったけれど、昨今はfunction.phpで読み込み処理をするのが定番なのね。

style.css

/*
 Theme Name:   Twenty Fifteen Child
 Template:     twentyfifteen
*/

スタイルシートヘッダにはいろいろ記載項目はありますが、最低限子テーマの名前となる「Theme Name」と親テーマとなる「Template」を設定してれば子テーマとして認識されます。
ちなみにTemplateは親テーマの名前ではなく、フォルダ名なので注意です。

function.php

add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );

}

function.php では親テーマのcssファイルを読み込むコードを書きます。


Webフォントの選択

Webフォントを公開しているサイトはいろいろありますが、Googleでも公開されています。
日本語フォントも試験的に提供されています。

[ Google Fonts ]

[ Google Fonts + 日本語 早期アクセス • Google Fonts + Japanese Early Access ]


Webフォント用に funtion.php の編集

Webフォントを利用するのに読込が必要なCSSファイルがあります。

たとえば Google Fonts日本語のM+1pフォントを使う場合

<link href="https://fonts.googleapis.com/earlyaccess/mplus1p.css" rel="stylesheet" />

href属性で指定してる部分が読み込むCSSファイルになります。

これを読み込み処理を function.php に追加します。

function WebFontCSS() {
    wp_enqueue_style('mpuls1','https://fonts.googleapis.com/earlyaccess/mplus1p.css', array(), null, 'all');
}
add_action('wp_enqueue_scripts', 'WebFontCSS');


CSSでWebフォントの適用

style.css

.wf-mplus1p { font-family: "Mplus 1p"; }

使いたい箇所のCSSクラスのfont-family に追加したWebFontを設定してあればOKです。

[WP] 管理画面へBASIC認証を追加

medium_10086117975
photo credit: Defence Images via photopin cc

先日二重認証を行ったがブルートフォースアタックはまだあるみたいなのでBASIC認証も行うようにしてみた。

BASIC認証用のID/パスワードファイルを作成・設置

[ .htaccess ファイルを簡単作成「.htaccess Editor」 ]
.htaccess Editor のサイトで .htaccess ファイルも作成できるので便利。

パスワードファイルを置く場所はサイトからアクセスできない場所が望ましい。
さくらインターネットであれば、/home/ユーザー名/www/ 以下がサイトで利用する場所なので、www ディレクトリと同じ階層にディレクトリを作成してその中にパスワードファイルをアップロードすればよい。


wp-admin ディレクトリをBASIC認証の対象にする

htaccess Editorでパスワードファイルを作成時にきちんとパスワードファイルのアップロード場所まで確定しているのであれば、htaccess Editorで作成された .htaccess ファイルをそのまま wp-admin フォルダにアップロード。

.htaccess ファイル例

AuthType Basic
AuthName "Secure Area"
AuthUserFile "/home/xxxx/.htpasswds/passwd"
require valid-user

設置後管理画面にアクセスすると認証用のダイアログが出ると思うのでパスワードファイル作成時のID と パスワードでログインできればOK。


wp-login.php を BASIC認証の対象にする

WordPressのログイン画面も認証するように。
Wordpress設置時に作成された .htaccess ファイルに上記のwp-adminのBASIC認証と同じ認証するように追加する。


<FilesMatch "wp-login.php">
AuthType Basic
AuthName "Secure Area"
AuthUserFile "/home/xxxx/.htpasswds/passwd"
require valid-user
</FilesMatch>

これで管理画面へログインする際に、BASIC認証 → WordPressログイン という二段構えになる。

参考サイト:[ WordPress の wp-login.php をブルートフォースアタックから守る | Web Design Leaves ]

[WP] カテゴリとタグが重複してしまった時

medium_3769771267
photo credit: Michael Heilemann via photopin cc

WordPressにて運用していくうちにカテゴリ名を変えたり、タグ名を変えたりして記事の再整理を行うことがままあります。

通常であればカテゴリとタグはそれぞれ別IDで管理され互いに干渉することは無いのですが、名前の変更操作で両方の名前とスラッグが同じにしてしまうと、カテゴリとタグが同一扱いになってしまいます。
そうなってしまうとカテゴリ名だけを変えたのにタグの名前も変わってしまったり、その逆の場合も起こります。

自分の管理しているサイトもその状況になってしまい管理画面からは分離作業が行えないため、データベースを直接書き換えなきゃだめかな・・・と思ってたとき下記記事を発見しました。

[ WordPressでカテゴリ・タグを作成する際に気をつけるべきこと | blog.ks-product.com ]

新たに別名のタグを作成し、該当記事にタグ付をして、古いタグを削除する という方法です。

カテゴリとタグとで名前の変更が連動してしまったため、削除も片方を削除すると両方削除されてしまうのではないか…と危惧してましたが連動してしまうのは名前付けのところだけとのことで、不要なタグの方は削除しても問題なかったです。



カテゴリやタグの名前を変更するときは気を付けましょうね。

[WP] WordPressの日本語URLエンコードの修正

WordPressの日本語URLエンコードの修正
(住 太陽のブログ)

WordPressの日本語スラッグのエンコードでは、パーセントエンコーディング(RFC1738方式)の際に a~f の文字に小文字を使います(%e9%80%b2%e5 みたいに)。ところが推奨されているのは大文字を使う(%E9%80%B2%E5)ほうなんですね。別に小文字でも間違いというわけではなくて、ブラウザで表示するだけなら、大文字でも小文字でも関係なく表示できます。でも、エンコードが小文字のままだと、いろいろ気になる現象が起きるんです。

自分のとこは各エントリーへのリンクは POST ID なのでURLエンコーディングはされないのだが、タグの一部でパーセントエンコーディングのままなので、一応修正をいれてみようと思う。

テーマ内の function.php を編集するのでテーマを変える際には同様の修正をしないといけないけれどね。

[wp] Flash Player 10 ではメディアアップロード機能が動かない?

Flash Player 10 ではメディアアップロード機能が動かない?
([WordPress] Tips Community)

原因は、Flash Player 10 にて採用されたセキュリティ仕様の変更により、WordPress に搭載されている Flash アップローダである「SWFUpload」による JavaScript の動作が制御されてしまったことにあるようです。

FlashPlayer10でYoutubeやニコ動画の停止現象が直ったーと思ったらコレですか…。

幸いな事にあまり画像を載せないブログだし、ブラウザアップロードを使えばアップロードは可能ではあるが、使えたものが使えなくなるのはぐんにょりするよね。

今のところWordpressに搭載されているSWFUploadの対応版が出ないとなんともならないらしい。