タグ

ブックマーク / www.warna.info (14)

  • WordPressで管理画面の表示言語を変えるプラグインを作ってみた – Simple Colors

    WordPressで表示する言語を指定するのは、wp-config.phpの WPLANG ですが、英語中国語のサイトを作成する際、この設定はどのようにしていますか? ja にして、テーマのlangは直書きにしてしまう or 管理画面は指定言語もしくは英語で我慢する、いずれかのパターンが多いと思いますが、他言語のサイトであっても、私のように外国語は苦手なので、管理画面は日語にしたいと思う方も沢山いるはず・・・ですよね?ね? 一応、Admin Languageというプラグインがあって、ユーザー毎に管理画面の表示言語を指定でき便利そうなのですが、WP Multibyte Patch と競合したり、日語リソースファイルを認識しなかったり、マルチサイト用の言語リソースを誤認識したりと、出来が今ひとつだったりします。 そんなこんなで、一般設定で管理画面の表示言語を指定できるようにするプラグイン

  • 投稿の個別ページのみパーマリンクを変更する方法 – Simple Colors

    WordPress で投稿のURLは、 /article/%postname%/ とか /blog/%post_id%/ にしたいけど、パーマリンク設定で article や blog といったディレクトリを入れてしまうと、カテゴリーやアーカイブの表示でも、このディレクトリが付いてしまってかっこ悪いですよね。 今回は、このちょっとしたモヤモヤを解消するべく、投稿の詳細表示の時のみ特定のディレクトリを追加する方法を紹介します。 投稿詳細ページのパーマリンクを変えるには、リンクを出力する時と、アクセスされた際に条件を判定するリライトルールの作成時の二箇所にフックをする必要があります。 前者は、pre_post_link と言うフィルターフックを利用します。このフィルターフックは、get_permalink 関数内に存在し、パーマリンク設定の内容をフィルタリングすることができます。ここで、ディレ

  • WordPressのアーカイブリストにclassを追加する – Simple Colors

    WordPressアーカイブリスト(wp_get_archives)は、wp_list_pagesなどと違い、リストに現在ページを示すclassなどが入りません。 また、ドロップダウンリストとして表示した場合でも、デフォルト選択状態になっておらず、ちょっとばかり不便ですね。 これを修正するには、get_archives_linkというフックポイントにフックして、htmlのソースを書き換える必要があります。 やり方としては、WordPressのカレンダーのthにclassを追加するコード(日語限定)とほぼ同じで、 フックして引数で得られるHTMLのソースを正規表現でパースし、リンクのURLを取得 表示しているURLと正規表現で得られたリンクのURLがマッチすれば、class or selected属性の追加したコードで置換 という流れになります。 CODE 1は、実際にテーマのfunct

  • WordPress 3.7以上で簡単にメディア表示をアップロードしたユーザーのみに限定する – Simple Colors

    なんとも時が経つのは早いもので、ちょっとほっておいたら、ほぼ1年ぶりの更新になってしまいました。 つい先日、コードを見ていて気がついたのですが、メディアの一覧を取得する関数 wp_ajax_query_attachments に WordPress 3.7 から、ajax_query_attachments_args フィルターが追加されていることに気がつきました。(遅 /** * Filter the arguments passed to WP_Query during an AJAX * call for querying attachments. * * @since 3.7.0 * * @see WP_Query::parse_query() * * @param array $query An array of query variables. */ $query = appl

  • WordPressでカスタムフィールドも検索対象にする – Simple Colors

    WordPressでカスタムフィールドも検索対象に含めてみました。 といっても、全てのカスタムフィールドを検索対象にするといろいろとアレなので、特定の名前を持つもののみに限定しなければなりません。 そこは、 pm.meta_key IN ( 'meta_key1', 'meta_key2', 'meta_key3' ) の meta_keyn の部分を調整してもらえれば、大丈夫だと思います。 function search_custom_field_query( $search, $wp_query ) { if ( $wp_query->is_main_query() && $wp_query->is_search() && ! is_admin() ) { $q = $wp_query->query_vars; $n = !empty($q['exact']) ? '' : '%';

  • カスタム投稿タイプのアーカイブ表示で、カスタム分類での絞り込み検索を行う – Simple Colors

    「Webサイト上で絞り込み検索ができるようにしたい」というのは比較的よくある要望だと思います。そんな場合どうしてますか?カスタム投稿タイプだったら、アーカイブ表示の際に、少々工夫すれば絞り込みを行うことができてしまうのです。 WordPress では、パーマリンクの設定如何に関わらず、?cat=5 などといったパラメーターを追加すると絞り込みが可能となっています。(なので、カテゴリー内でのテキスト検索といったことも簡単に可能なんですよ?) このため、フォームの method 属性を get にしておけば、比較的簡単に絞り込みができてしまうのですが、この場合、アドレス欄にパラメーターがずらずら並んでしまってクライアント受けが良くないのと、チェックボックスによる複数項目での検索に対応しづらいのが難点です。 これを post で投げて、アドレスはそのままで絞り込み検索、さらにはページ送りにも対応

  • search-everything – Simple Colors

    )の数が合わないため、ただしく置換が起こらない問題の修正 195行目から if ($searchQuery != '') { // $where = str_replace( ")))", ")$searchQuery))", $where ); if ( preg_match( '/\)\)\) $/', $where ) ) { $where = preg_replace( '/\)\)\) $/', ")$searchQuery))", $where ); } elseif ( preg_match( '/\)\) $/', $where ) ) { $where = preg_replace( '/\)\) $/', ")$searchQuery)", $where ); } } 複合キーワードでpost_metaの検索がANDになってしまう問題の修正 se_build_searc

    search-everything – Simple Colors
  • パラメータでカスタマイズしやすいWordPressのページナビを作ってみた – Simple Colors

    WordPressのページナビ(ページャー)は、なんと言ってもWP-PageNaviが有名ですが、もっとシンプルでコントローラブルなものが出来ないかと思い自分で作ってみました。 出力されるHTMLのソースを見てもらえれば分かりますが、CSSのclassの変更がパラメータで出来たり、種類が豊富に指定されるため、多様なデザインをカバーできることも、喜んでもらえる点ではないでしょうか。 [2011.06.30追記] プラグイン版を公開いたしました。一部機能追加と修正してありますので、こちらをご利用ください。 導入方法 使っているテーマのfunctions.phpにCODE 1を追記してください。あるいは、独自プラグインにしてしまってもいいです。(独自プラグインの作り方は、初心者でも10秒でできる WordPress プラグインの作り方やWordPress でスニペットを簡単に管理する方法あたりを

  • 3.3の新しい関数 is_main_query を使おう – Simple Colors

    WordPressの3.3で、新しい関数 is_main_query が使えるようになりました。 WordPress をカスタマイズをガッツリ行う方には、是非知っておいていただきたいものです。 といっても、有用なのは関数ではなく、クラスメソッドの方ではありますが。。 表示カスタマイズ方法のおさらい 例えば、カテゴリーアーカイブだったら表示する件数を5件にしたい時や、年月アーカイブでは特定のカテゴリーを除きたい時などどうしていますか? 簡単にやるのであれば query_posts を使い、その条件で記事を取得する方法ですが、これは、データベースへのアクセスが増えるので、パフォーマンス的にはあまりおすすめできません。速くするためにCSSスプライトを使ったりするのに、これではちょっと末転倒な気もしますよね。 一番いいのは、WordPress が標準で表示する記事の条件を状況に応じて変更してあげ

  • WordPressで挿入する画像のsrcを相対リンクにする【発展版】 – Simple Colors

    一番最初に書いた記事「WordPressで挿入する画像のsrcを相対リンクにする」では、環境移行がしやすいよう、単に画像のドメイン部分をカットしていました。 ただし、これには1点問題があってRSSリーダーなどで表示する際に、ドメインが異なるため、画像が表示できていませんでした。 この問題に対応するため、以前のコードを元にドメイン部分をショートコード化し、表示する際に、運用中のドメインを追加するように改正してみようと思います。 ドメインを表示するためのショートコードは [domain] として、相対リンクのurlに付け足します。 CODE 1 function delete_host_from_attachment_url( $url ) { $regex = '/^http(s)?:\/\/[^\/\s]+(.*)$/'; if ( preg_match( $regex, $url, $m

  • WordPress3.2のアップグレード警告、ブラウザ判別機能を調べてみた – Simple Colors

    WordPress3.2からの管理画面では、ブラウザのバージョンが古かったりするとこのようなアラートが表示されるようになっています。 今回は、この新しく追加されたアラートのボックスの改変および、バージョン判定のロジックを調べてみました。 アラートそのものを非表示にする 表示されているボックスの「却下」をクリックすれば、非表示になりますが、これは、表示オプションで消した状態になっているので、少なくとも最初の1回は表示されてしまうことになります。 このアラートは、他の「現在の状況」「クイック投稿」同様、ウィジェットとなっているので、「デフォルトのウィジェットを削除する」のコードを CODE 1 のように少し変更してあげれば、アラートのボックスも消すことが出来るようになります。 function remove_dashboard_meta_boxes( $screen_id ) { global

  • WordCamp Tokyo アンケート集計サイトの舞台裏 – Simple Colors

    @rie05 さんからのバトンを受けて、WordPress Advent Calendar 2011 の4番バッターを担当させていただきます。 Advent Calendarとはなんぞや??と思われる方もいらっしゃるかと思いますが、それは、先のお三方が十二分に説明いただいているので、さっくりと割愛。 たいさん、みやさん、りえさんと、ハードルを上げまくってくれたので、後の方を思ってここら辺で下げる役割をば。。。 私の紹介する内容ですが、WordCamp Tokyo 2011 のアンケート集計を担当させていただいているので、技術的内容含めて、その舞台裏など紹介してみたいと思います。 WordCamp Tokyo 2011は、11/27に800名を超える参加者を開催されましたが、アンケートを集計する役目に手を挙げてしまっていたので、私の WordCamp はまだ終わらない! 受付スタッフに集めて

    WordCamp Tokyo アンケート集計サイトの舞台裏 – Simple Colors
  • タクソノミーの使い勝手を劇的に向上させるWordPressプラグイン PS Taxonomy Expander – Simple Colors

    カテゴリーや投稿タグ、カスタムタクソノミーの使い勝手を、どどーーーーーーんと向上させてしまうプラグインPS Taxonomy Expanderを公開しちゃいます。 このプラグインは、単一機能ではなく、カテゴリーなどのタクソノミー全般に対し、実運用時のユーザビリティーを向上させる複数の機能から成り立っています。 機能一覧 1.カテゴリー・階層化タクソノミーの登録方式を変更可能に カテゴリーや階層化を有効にしたタクソノミーの選択方式を、タクソノミー毎に、複数選択(チェックボックス)または、単一選択(ラジオボタン)から選べるようにします。 サイトの構造や見栄えなどによっては、複数のカテゴリーを選択されると、表示上不整合が発生するケースもありますが、そういった場合でも、ユーザーの運用に頼るのではなく、タクソノミーの選択方式自体をラジオボタンに変更し、ヒューマンエラーを軽減させます。 2.タクソノミ

  • WordPressのユーザー管理画面カスタマイズまとめ – Simple Colors

    会員サイトや複数の編集者で運用されるようなサイトの場合、ユーザーのプロフィールなどを表示するケースが多いかと思います。 その際、デフォルトのWordPressのユーザーの項目では、物足りなかったり、逆に余計な項目が存在したりしてしまいます。 そこで、ユーザーの管理画面がどの程度カスタマイズ可能かをまとめてみました。 ※ 記事は、WordPressの3.1を元に記述しています。古いバージョンや今後のバージョンでは、適用できない場合もあり得ますのでご了承下さい。 カスタマイズが可能な箇所 ユーザーの管理画面で、項目の編集や追加が可能な箇所は、下記5箇所になっています。(関数内部のフックなどを利用すれば、まだ他にも可能かもしれません。) 1.管理画面配色下部 利用するフック admin_color_scheme_picker 利用方法 1)管理画面の配色欄内にフォームなどを追加 2)一旦、セル

  • 1