タグ

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

  • WordPressのナビゲーションメニューを等幅表示してみる – Simple Colors

    WordPressで登録されているウィジェットの数に応じたclassを出力する、WordPressで同一エリアのウィジェットエリア表示に応じたClassを出力するに引き続き、今回はナビゲーションメニューを等幅で表示できるようにしてみます。 やり方は、前回までと同じようにナビゲーションの表示数をカウントし、それに応じた class を出力。前もって css で定義していた width で表示という手法。 ウィジェットの場合は、別途 class 出力用の関数を作成しテンプレートに追加する必要がありましたが、ナビゲーションメニューの場合は、パラメータでラッパー要素の指定が出来、なおかつ、wp_nav_menu_argsフックにてパラメータのフィルタリングが可能となっています。 修正する手間はなるべく掛けない方が良いに決まっていますから、今回はテンプレートファイルの修正は行わず、ラッパー要素の c

  • WordPress の投稿スラッグを自動的に生成する – Simple Colors

    WordPress のパーマリンク構造に %postname% が含まれていて、うっかりパーマリンクの設定をし忘れると、ブラウザのアドレス欄に日語が表示されたり、 %e3%81%8a%e5%95%8f%e3%81%84%e5%90%88%e3%82%8f%e3%81%9b みたいな感じで、イミフな文字列がならんでしまったりしてあまり気持ちの良いものではありませんよね。 よく分かっているならまだしも、運営を任せていたりすると、そんなURLが大量に発生してげんなり・・・そんな状況もよくあり得ます。 先日フォーラムの 記事のスラッグ名を自動的に記事IDにしたい に回答した内容を一歩進めて、なるべく汎用的に使えるコードを書いてみました。 方針としては、 自分で設定したスラッグの場合は、変更しない 日語などマルチバイトの場合は、{投稿タイプ}-{記事ID}に強制的に変更 記事IDのみにしていない

  • WordPressの管理画面でプラグインのメモを残せるプラグインを共同開発してみた – Simple Colors

    ある日、Twitterで @poyosi さんがこんな事をつぶやいていて 実は内心「40も50も入れるかフツー?」などと思っていたのはおくびにも出さず聞いていると、夜中にもかかわらず各所から反応があって 意外にニーズがあるのかもと考えを改め、そんなわけで、ちょっぴり興味を持って取り組んでみることにしました。 メモの入力と表示ですが、あまり小さかったりすると入力も表示もユーザビリティーが悪くなりますし、ただでさえプラグインの説明表示の表示文字数が多くなり窮屈な感じになりそうだったのでカラムを増やすのは得策ではないと考えました。 そんなときに、ちょうど有り難かったのがプラグインの行表示を行った後に存在する after_plugin_row というフックです。プラグインの更新があった場合、 の様なメッセージが表示されますが、この表示もほぼ同じ箇所のフックを利用しているはずです。 というわけで、プ

  • タクソノミーの使い勝手を劇的に向上させるWordPressプラグイン PS Taxonomy Expander – Simple Colors

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

  • ページナビ&パンくずナビプラグインアップデート – Simple Colors

    ページナビとパンくずナビプラグインを共に0.8.1にアップデートしました。 共にバグフィックスなので、機能的なアップデートではありません。 アップデート内容 プラグイン化にあたって発生していたNoticeエラーの修正 デフォルトパーマリンク時にサポート出来ていなかったmパラメータへの対応(パンくずナビ) ダウンロードは下記ページのダウンロードリンクからどうぞ。 ページナビプラグイン 「パラメータでカスタマイズしやすいページナビもプラグインにしてみた」 パンくずナビプラグイン 「パラメータでカスタマイズしやすいパンくずナビをプラグインにしてみた」 コメントをいただいた gatespace さんには改めて御礼申し上げます。 ありがとうございました。

  • WordPressの実行時間を短縮させる「001 Prime Strategy Translate Accelerator」 – Simple Colors

    開発に関わったWordPressの実行速度を短縮させるプラグイン「001 Prime Strategy Translate Accelerator」がリリースされたので、ここでも紹介させていただきたいと思います。 WordPressを日語で表示させる場合には、英語と日語を対訳させるja.moというファイルを読み込んでいます。実を言うと、このファイルの読み込みには結構な時間がかかっていて、なおかつバージョン毎にファイルサイズが大きくなってきています。 当ブログの計測値では、この処理だけで約0.1秒。現状のSimple ColorsではWordPressだけの処理時間で約0.3秒なので、全体の処理時間の約30%がこのファイル読み込みにかかっている計算になります。 001 Prime Strategy Translate Acceleratorでは、このファイル読み込みをキャッシュ化し、およ

  • PS Taxonomy Expander 1.1.2アップデート – Simple Colors

    1.1.1のアップデートから、まだあまり日が経っていませんが、PS Taxonomy Expander を1.1.2にアップデートいたしました。 1.1.2でのアップデートについては、管理画面の投稿・固定ページ、カスタム投稿の一覧表示時にカスタム分類での絞り込みと所属するカスタム分類の表示を追加するものになります。 といっても、多数の分類を登録している場合に表示が見にくくなる可能性もあるので、投稿タイプ毎に追加表示する分類を選択できるようにしています。 これによって、管理画面での一覧性・記事の属性・検索性の向上が期待されます。 機能一覧、設定方法などは、タクソノミーの使い勝手を劇的に向上させるWordPressプラグイン PS Taxonomy Expanderをご覧下さい。 アップデート・ダウンロードは、PS Taxonomy Expanderの公式プラグインディレクトリからどうぞ。

  • WordPressの日付フォーマットから月の設定だけを抜き出す – Simple Colors

    パンくずナビのプラグインを公式ディレクトリに登録しようと思い、国際化しているときに気がついた。日では「8月」とかでいいけど、海外は「Aug」とか、英語表記の方が一般的なのではないかと。。 設定画面を設ける手もあるけど、もっと簡単に日付フォーマットから月の表示設定を取得して、それを利用するのが良いのではと思いチャレンジ。 なんらか簡単に取得できる方法があるといいのだけど、分からなかったので日付フォーマットから正規表現(CODE 1)で抜き出すことにしました。バッククォートでのエスケープされた文字にマッチしないように一応気は使っています。 CODE 1 preg_match( '/(^|[^\\\\]+)(F|m|M|n)/', str_replace( '\\\\', '', get_option( 'date_format' ) ), $m ); if ( isset( $m[2] )

  • WordPressでマルチサイトでのみ使えるプラグインを作る方法 – Simple Colors

    WordPressのプラグインにはネットワークでのみ有効にできるようにする方法があるのをご存じでしたか? 方法は簡単、プラグインをプラグインとして認識させるためには、ファイルの冒頭に書式に従ったコメントを記述する必要がありますが、このコメントに Network パラメータに true を指定するだけです。 /* Plugin Name: Site Wides Plugin URI: https://www.warna.info/archives/1634/ Description: マルチサイト専用プラグインテスト Author: jim912 Version: 0.1 License: GPLv2 or later Author URI: https://www.warna.info/ Network: true */ プラグインページを表示してみると、 左がサイト管理のプラグインリスト

  • WordPressで時差分ずれない著作権年号表示の仕方 – Simple Colors

    フッターにある「Copyright © YYYY ・・・ 」のYYYYにあたる年号を自動的に表示する方法として、CODE 1を紹介していることがあります。 CODE 1 <?php echo date( 'Y' ); ?> ただ、WordPressの2.9以降では、内部の時刻計算をGMT(Greenwich Mean Time:国際標準時)で行っているため、CODE 1 では日との時差分9時間ずれてしまうことになるって知ってましたか? まあ、微々たる差とは言え、やっぱりピタリと切り替えたいと思うのが人情というものではないでしょうか。そんな繊細な貴君に使ってもらいたいのが、CODE 2 CODE 2 <?php echo date_i18n( 'Y' ); ?> date_i18n 関数の第2引数、第3引数を省略すると、自動的に現地時間の現在時刻を返すようになるので、時差の心配をしたり、計

  • Twenty Ten、Twenty Elevenのヘッダー画像を1行で非表示にする方法 – Simple Colors

    Twenty Ten、Twenty Elevenでヘッダー画像を表示させないようにするには、header.phpを編集する方法や、CSSでdisplay: noneの指定を追加する方法もありますが、functions.phpの1行書き足すだけで、あっさり非表示にもできる方法があるのをご存じでしょうか。 functions.phpに CODE 1 を追加するだけで、サンプルの通りにヘッダー画像が表示されなくなります。 CODE 1 add_filter( 'theme_mod_header_image', create_function( '', 'return "remove-header";' ) ); 意外にシンプルでキレイでしょ。 ヘッダー画像を利用しない子テーマを作る場合には、header.phpを修正する必要もないし、お手軽でよいのではないでしょうか。

  • WordPressの固定ページ一覧に順序の項目を追加する方法 – Simple Colors

    WordPressの固定ページは、ページ属性の順序によってソートされるようになっているのは知られていますが、この項目が固定ページの一覧に表示されていたら、新規追加の際にいくつにすれば良いか分かりやすいですよね? 今回は、そんな固定ページの使い勝手を良くしてくれるコードを紹介します。 ちょっと長いですが、CODE 1 をテーマの functions.php に追加してもらえれば、 この通り。 固定ページに順序の項目が追加されます。項目名が青字になっていることからも分かるように、順序でソートできるようにもしていますし、page-attributes をサポートしたカスタム投稿タイプでは自動的に追加されるようにしましたので、汎用的に使えるのではないでしょうか。 是非、ためしてみてくださいね。 CODE 1 function check_post_type_support_page_attr()

  • wp_list_categoriesのclassにスラッグを含める方法 – Simple Colors

    Web Design Recipesのたかはしのりさんが、「WordPress のよくあるカスタマイズコード functions.php 多め」という記事で、 テンプレートタグ wp_list_categories に、スラッグ名のクラス付ける方法あったら、教えていただけると嬉しいです! とおっしゃっていたので、いつものように?チャレンジしてみたのでした。 wp_list_pagesでは、page_css_classという出力されるclassへのフックがあって簡単に追加・削除が可能なのですが、wp_list_categoriesは、出力される全HTMLソースに対する wp_list_categories というフックがあるのみで、ちょっと難度があがります。 方針としては、「WordPressのカレンダーのthにclassを追加するコード(日語限定)」と同様の方法で、正規表現でのパターン抽

  • CSVファイルのデータからテーブルを表示させるショートコード – Simple Colors

    WordPressで表組みを表示・更新するのは、HTMLが分かる人ならなんとでもなりますが、そうでない人が担当するとなると・・・結構困ったことになりますね。 そんなわけで、CSVファイルをアップロードして、テーブルとして表示できるショートコードを作成してみました。 利用方法 1.CODE 1 をテーマのfunctions.phpに追記するか、独自のプラグインにして有効化してください。 2.メディアアップローダーから表として表示するCSVファイルをアップロードします。 3.テーブルを表示させたい箇所に csv2table ショートコードを記述してください。最低限必要なパラメータは、メディアのidか、ファイルの URLになります。 その他、下記パラメータにて、出力を変更することができます。 パラメータ th thとして表示するセルの指定。row:左列、col:上部、both:左列および最上列。

  • WordPressのTransients APIを用いて表示の高速化を図る – Simple Colors

    ポータル的なサイトの場合、トップページの情報掲載量が多く処理が重くなりがちですよね。こんなときの対策として、WP Super Cache や W3 Total Cache などのキャッシュプラグインを利用することも1つの手ではありますが、ランダムな表示箇所があったり、カウンターの表示があったり、ログイン処理があったりなどなど、すんなりとキャッシュでは解決できない場合も出てきたりします。 こんな場合は、Transients API を用いて取得結果のデータをキャッシュとして保持する方法があります。 Transients API は、通常 options テーブルにデータを保存しますが、オブジェクトキャッシュを利用している場合は、そちらを利用し高速に動作します。 また、有効期限を指定しない場合は、キャッシュの更新・破棄を行わない限り永久的なキャッシュとして動作します。(注:ただし、この手法は推

  • WordPressの新着情報表示にカスタム投稿タイプを含める方法 – Simple Colors

    @junirock78 さんが、ツイッターでカスタム投稿タイプも含めた新着情報を表示する方法を質問されていたので、おせっかいかとは思いつつ話の輪に加わってみました。 方法としては、テンプレートで query_posts または get_posts などを使って取得する方法が一般的だとは思いますが、これだとデータベースへの問い合わせが新たに発生してしまいます。 トップページでの表示であれば、もともと最新の投稿を取得してきていますから、これにカスタム投稿タイプを含めるようにしてしまえば、新たなデータベースへの問い合わせもなく、パフォーマンス的にも良くなりますね。 では、どうすれば良いかというと、データベースへの問い合わせが発生する直前に、トップページだったら(最新の投稿を表示している = is_home() がtrue)、リクエストの条件にカスタム投稿タイプの指定を追加してあげれば、あとは W

  • 順序をサポートしたカスタム投稿タイプのデフォルト表示順を変更してみる – Simple Colors

    カスタム投稿タイプを利用する際に、register post type の has_archiveパラメータを true とすると、投稿タイプのアーカイブ(一覧)表示を行うことができるようになります。 ただし、表示順については設定や入力にかかわらず公開日順になってしまうため、page-attributes をサポートして順序の入力を可能にしていても、表示に反映されることがありません。 今回は、この投稿タイプアーカイブの表示の際に、page-attributes がサポートされていれば、自動的に順序(menu_order)順に従って表示されるようにしてみましょう。 CODE 1では、記事を取得する直前の pre_get_posts にフックしてクエリーの条件を書き換える処理を行っています。ただし、条件指定がされていた場合は、上書きせずに指定値をそのまま利用するため、固定ページ同様に管理画面な

  • WordPressのget_the_categoryの取得順をカスタマイズする – Simple Colors

    WordPressで投稿記事が属するカテゴリーを取得する get_the_category は、属するカテゴリーをカテゴリーの名前順で取得してきます。これは、カテゴリーだけでなく、投稿タグの get_the_tags やカスタム分類での get_the_terms でも同様です。 しかしながら、利用シーンによっては名前以外の順序で取得したい場合もあるのではないでしょうか。今回は、この取得順序を指定できる方法を紹介してみたいと思います。 やり方はいろいろあって、 get_the_terms のフックを利用する方法 wp_get_object_terms 関数で orderby パラメータを指定する方法 などもありますが、今回は単純ながらデフォルト取得結果を特定の値で再ソートする方法を採りたいと思います。 というのも、1では引数が自由に取れず特定のカスタマイズしか出来ないこと、2では使う毎にデ

  • 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

  • WordPressのメタキーワード、メタディスクリプションを出力するプラグイン「Meta Manager」 – Simple Colors

    WordPressのhead要素にmeta要素の keywords と description を追加するプラグイン Meta Manager を公開します。 まだまだ、試験公開段階なので「こうして欲しい」「こういう機能があったらいい」などのご意見やご要望がありましたら、どしどしコメントしてください。 概要 head要素内にメタキーワード、メタディスクリプションを出力します。 出力サンプル <meta name="keywords" content="WordPress,ワードプレス,WordPress,PHP,web,アニメ,F1,セミナー" /> <meta name="description" content="Simple Colorsは、WordPressエキスパートのjim912によるカスタマイズテクニックを紹介するブログです。" /> 利用方法 Meta Manager を有

  • 1