To PageTop

カテゴリーアーカイブ : WordPress

無駄に長いタイトル通りです。
例によってニッチな機能の、functions.phpに書けば事足りそうな代物をなんとなくプラグイン化してみました。
(ついでに多少まじめに管理画面を作って全体を整理したら、結局9割くらいコードを書き直す事になったので自分的にはほぼ新規作成だった気がしなくもありませんが…。)

こんなものを何に使うかと言うと、例えば、とある団体のその参加企業の所有するドメイン(単一、または複数の)のメールアドレス所持者のみユーザー登録を許可したい、等という用途です。

 

動作としては、ユーザー新規登録の際に使用するメールアドレスに対して判定を行い、許可されているドメイン以外の場合はエラーとして処理します。
一度ユーザー登録を完了させた後、プロフィール画面で許可対象外の別ドメインのメールアドレスへの変更を許すかどうかは任意選択可能です。

また、指定するドメインのリストの処理方法としてホワイトリスト方式とブラックリスト方式の選択が可能です。

 

※動作について
プロフィール画面での制限を実行する場合、処理の対象になってもアドレスの変更ができないだけでエラー等は表示されません。
この為、実際の運用ではどこかしらに注意書きでも書いておく必要があります。
また、現状では管理者による変更であっても制限をかける場合その対象となります。
作り終わった後に動作を試していて気づいたのですが、管理者があえて対象外のドメインを指定するというシチュエーションが思い浮かばない為、今のところ修正予定はありません。

実際の処理内容としては、メールアドレスが新しいもの(許可の対象外ドメインの)ものに上書きされた直後に、旧アドレスで書き戻すといった処理になっています。
(変更前に妨害するちょうどいいフックが無かったのでこうなっています)

RA – Registration Mail Address Domain Limiter

 

※ご注意
他の配布物にも言えますが、野良プラグインのご使用は自己責任でどうぞ。
例によって公式のプラグインディレクトリへの登録は、英語のReadmeを書くのが面倒なので放置中です。

2014 9/19 追記
例外アドレスリストを追加しつつ、ついでに公式ディレクトリに登録しました。
今後はそちらからダウンロードして下さい。※プラグイン名称も微妙に変わっています。

もしかしてこれ、WPの更新画面からアップデートするとキャッシュディレクトリのパーミッションを元に戻されるんじゃないだろうか…。

何かの拍子に変わってしまってDownload Managerが正常に動かなくなっていたようだったものの、とりあえず設定し直してみた。

詳しく調べていないのでなんとも言えないけれど、トリガーになるような事がプラグインのアップデートくらいしか思いつかない。

タイトルの通りです。
それ以上でもそれ以下でもありません。
例によってfunctions.phpに書けばそれで事足りるコードをわざわざプラグイン化したやっつけな代物です。

post_statusが’new’,’draft’, ‘auto-draft’から’publish’へ遷移する際に動作し、同時にステータスを’private’へ書き換えます。

 

普通にWPを使っている状況ではあまりこれが必要になる事は無いと思うのですが、企業サイトとかで担当者がどうの確認がどうの、素人が作業するのがどうのとかそういう変わった事情向けです。

効果としては、新規投稿から直接公開される事が無くなります。(裏技的にできますが、そういう意図の機能では無く、あくまでワンクリックで『公開されてしまう』事を避ける為のモノなので…)

 

※中身のお話

処理的に、post_statusが「publishに書き換えられた瞬間の後」に再度privateに上書きするようになっています。
類似のフック等を見ても、書き換える前にこれを妨害する事ができるような部分が見当たらなかったのでそうなっています…が、何かいい方法あったら教えてもらえると喜びます。

 

RA – New Post Auto Set Status “Private”

2014 9/19 追記
WordPressの公式プラグインディレクトリに登録しました。
今後、ダウンロードはそちらから行なって下さい。

はい、もはやなんのサイトだかよく解らなくなっているチラシの裏です。

WordPressを使っていて、デフォルトのパーマリンク設定でURLを設定している人はそう多くないのではないかと思うのですが(普通はクエリ方式避けますよね?)、そういう時に例えば固定ページ等のURLに日本語を含むマルチバイト文字が入ってURLエンコードされるとか、そういう所を気にする人がいるのです。

個人的には、日本語URLはべつにアリだと思うのでどうでも良いのですけれど(むしろ無作為採番等より余程いいと思っています)、クライアントの中にはそうではない人も居るわけで…。

 

Slugを英数字で設定すれば良いだけの事なのですが、毎度毎度タイトルを入力した後にSlugを別途入れてくれと指定しても守ってもらえるとは限らないうえに、もし自分で大量のページを作る等となった時に手動なんてめんどくさい訳です。

で、どうするかといえば、普通にやるならfunctions.php等に作りおきの関数をコピペするだけなのですが、中にはPHPのコードを見るのすら嫌な人も居る訳で…。

ということで、仕事でなんとなく作った簡素極まりない関数を物凄く単純にプラグイン化したというやっつけ仕事なこのプラグインを投げつけておくという結論に至りました。

 

前置きが長いですが、要するにプラグインの挙動としては、新規post時のSlug自動生成の際に、マルチバイト文字が入っていた場合は自動的に”post_type-post_id”の形式で生成し直してくれるというただそれだけのモノです。

WordPressの内部的な言い方をすると、post_statusが’draft’, ‘pending’, ‘auto-draft’の時に上記の動作をします。
つまり、記事公開後及び非公開状態、公開予約状態においては無効となるので、新規作成の時以外の場合は意図的にURLエンコードの入るマルチバイト文字を使用したSlugを設定することができるという事になります。

一応多言語対応になっているので、readme.txtやら用意すれば公式のプラグインディレクトリに投げる事もできるのでしょうが、なんせ英語リソース作るのが面倒なので多分余程暇じゃなければこのままになりそうです。

RA – Mod Multibyt Slug

2014 9/19 追記
WordPressの公式プラグインディレクトリに登録しました。
今後、ダウンロードはそちらから行なって下さい。

はい。激しく久しぶりです。

例によって更新をサボる私です。

前々からどうしようか考えていたWordPressのテーマ開発ですが、某所にて、中身を見てみたいとのご要望がありましたので、とりあえず当サイトで使用しているテーマを公開してみます。

使ってみようなんていう奇特な方が居るかどうかはともかく、何かありましたらお問い合わせよりお知らせ下さい。
(何より、バグ報告頂けると有難いので←)

それにしても、今ソース見ると開発用の回りくどい記述だとかそういうのが残ってますねぇ…。
そのうちブラッシュアップできればやろうかなー…と思いつつ、多分そのままなんでしょうね。

更新履歴

1.3.1
  • 最近のWP及びPHPのバージョンとの互換性を維持できるように更新。たぶん1.3.0以前だとPHPのバージョンを上げると一部(ポートフォリオ一覧あたり)動かなくなるはず(適当)。
1.3.0
  • WordPress4.0において、画像処理ライブラリが動かない場合があるので、その際にライブラリを無効化した場合にお知らせ機能のサムネイルを直接指定できるように変更。
    (元々、画像自体は出力されるようになっていましたが、サムネイルを指定しない場合、小サイズで出力されませんのでそれを任意に行う為に、WPのサムネイルを有効化しました。
    尚、今後の方向性的に、画像処理ライブラリ自体は流れとして廃止の方向なので、こちらについては使用可能なようにfixする予定はありません)
1.2.3
  • ポートフォリオ・サムネイル一覧テンプレートのbugfix.
    (子カテゴリの複数表示に問題があったのを修正)
1.2.2
  • 管理画面のポートフォリオ記事リスト画面のサムネイル表示機能を拡張。
  • 画像生成関連のコードを整理、共通関数化。
    ※TimThumb無効かつ表示対象となる画像の指定サイズが未生成の場合、指定サイズの画像を自動生成するようになりました。
  • ぷちbugfix。
1.2.1
  • 管理画面のポートフォリオ記事リスト画面へ、サムネイル表示追加。ぷちbugfix。
1.1.1
  • デバッグコード除去。ぷちbugfix。
1.1.0
  • Lightboxの亜種クローン、PrettyPhotoを使用した画像表示エフェクト機能を追加。
1.0.8
  • ちょっとしたbugfix。
1.0.7
  • トップページロゴ関係の設定項目を追加。
    ついでに周辺のコードを整理。
1.0.6
  • index.phpの中に紛れ込んでいた余計なdivタグを削除。

テーマの特徴

デザイン関連
  • 基本的にほぼ白黒のどシンプルな見た目
  • トップページの擬似入り口ページ風デザイン
    (スクロールに気づかれない可能性有り←)
  • フルレスポンシブ対応
機能関連
  • 独自の管理画面で設定可能な多数のオプション有り
    例:
    • メインイメージ画像
    • タイトル文字の表示方法、ロゴ表示
    • 背景画像
    • Webフォントの選択や色指定
    • サイドバーレイアウトの選択
    • サイトの表示横幅指定
    • 各トップページ要素の使用不使用切り替え、その他設定
    • フッターのカスタマイズ設定
    • 画像処理方法の設定
    • ソーシャル系アイコンリンクの設定
    • コンタクトページの各種設定
    • …etc
  • 画像処理スクリプトが有効の場合、動的な画像リサイズ
    (表示に併せて任意に自動リサイズされます。モバイルの場合も同様です)
  • ポートフォリオ関連の記事カテゴライズ表示特化テンプレート
    (そもそもが画像を見せる為のポートフォリオサイト向けです)
  • 一般的なブログ機能
  • 任意選択可能な、記事アーカイブページでのAjaxによる自動読み込み機能
    (スマフォ等で重宝する、Twitter公式等で使用されている下までスクロールしたら続きが読み込まれるアレです)
  • 『ほぼ』日本語
    (普段目にしないような場所にところどころ未翻訳が混じっています)
  • お知らせ(インフォメーション)機能
    (Webサイトによくある、任意URLへ誘導する為のバナーだったりするアレです)
  • フレームワークによるテキストエディターの拡張
  • テーマ側へのスタイル適用による、エディターと実表示の近似化
  • トップページへの『最終更新日』表示

その他

このテーマは、Woothemesさんのテーマで使用されているフレームワークを使用して、フレームワーク本体側の構成ファイルはそのままの形を維持しつつ、色々とカスタマイズを加えて作成されています。

元々のフレームワークは全て英語ですが、必要と思われる関連部分はほぼ日本語化して翻訳ファイルを付属させています。ただし、一部においては意訳などというレベルではなく、原文章とは全く違う内容となっていますので、万一参考にしようなどと考える方はご注意下さい。
翻訳としての正確さよりも、実機能の説明に重きを置いています。

尚、一応はWordPress公式のテーマチェックをパスできるように作成されています。
(フレームワーク部分で『注意』と『情報』は出ますが特に問題は無い…はずです)

使用方法

WordPressのテーマディレクトリに解凍して出てきたフォルダごと突っ込んで下さい。
その後、管理画面よりテーマ選択で選択すればそのまま使用可能です。
(ただし、画像の自動処理を行うにはキャッシュフォルダのパーミッションをWebサーバーが書き込み可能に設定する必要があります)
当テーマのWordPress対応バージョンは3.5以降となっています。
画像処理部分に、該当バージョン以降で追加された関数を使用しています。

ただし、ポートフォリオやインフォメーションについてはカスタムポスト及びカスタムタクソノミーを使用しているので、ほぼ確実に引き継ぎ等はそのままでは行えません。
(これが行える方にはそもそも説明は不要と思われます)

また、画像処理スクリプト(TimThumb)を使用する場合は、テーマの構成ファイルがあるディレクトリのcacheディレクトリのパーミッションを書き込みが可能なように変更してください。
これを設定しないと画像が出なくなります。