カテゴリー: WordPress

  • WordPressでカスタムフィールドを使いやすくするプラグイン「Magic Fields 2」

    投稿画面で、カスタムフィールド用の入力欄をこさえるプラグインはCustom Field Templateとかが有名ですよね。作者も日本人なので、使い方の情報とかも整備されているので、とても便利に使わせてもらっています。

    ただ、今回はそれとはちょっと毛色の違うプラグインです。

    Magic Fields 2

    Custom Field Templateとはかなり毛色の違うプラグインです。Magic Fields 2の方はとにかく多機能です。主な機能としては、

    • フィールドのグループ化
    • 投稿時に複製可能なフィールド、グループの作成
    • 入力必須なフィールドの作成
    • テキストボックス、マークダウン、ドロップダウンメニュー、画像、オーディオ、ファイル…等のいろんな種類のフィールドを作成可能
    • 日付入力支援や、フィールドの説明文を管理画面でツールチップで表示

    等々、便利機能が満載です。

    基本的にはシンプルにWordPressの機能を活用して+αとしてカスタムフィールドを使うときはCustom Field Template、入力欄をガッツリカスタマイズするようなものはMagic Fields 2という使い分けをしています。
    カタログのようなサイトとか、ライブハウスのスケジュールとか、かなりガッツリフォーマットが決まっているようなサイトには便利だなと思ってます。

    ただ、カスタムフィールドの複製機能を使ったりした場合、順番通りにカスタムフィールドに格納されるとは限らなかったり、画像の処理などに独自の関数を用いていたり、ちょっとWordPressの標準のテンプレートタグで扱おうとすると結構痛い目を見ます。
    関数がかなり強力なんで、Wikiもあるのですが、英語かスペイン語で書かれてるので、めちゃくちゃハードルが高いです。

    なので、ちょっとしたスニペッドをいくつか。

    get()

    [php]
    get($fieldName, $groupIndex=1, $fieldIndex=1, $readyForEIP=true,$post_id=NULL);
    [/php]
    カスタムフィールドの値を取得します。

    [php]
    echo get(‘price’);
    [/php]

    みたいに使います。

    [php]
    echo get(‘brand’,8);
    [/php]
    $groupIndexは、複製したグループの番号です。この場合、複製可能なあるグループの8番目に所属するbrandの値を取得します。

    [php]
    echo get(‘time’,1,4);
    [/php]
    とすれば、1番目のグループの、複製可能なtimeというフィールドの4つめの値を持ってきます。

    $readyForEIPは表示されてる画面で直接値の修正が出来る機能を有効にするか、しないかみたいなもののようですが、動作が確認できてません。

    また$post_idで記事のIDを指定することが出来ます。ループ外で使うときなどは有効かも。
    [php]

    [/php]

    get_image()

    [php]
    get_image ($fieldName, $groupIndex=1, $fieldIndex=1,$tag_img=1,$post_id=NULL,$override_params=NULL);
    [/php]

    $fieldName, $groupIndex, $fieldIndex, $post_idはget()と一緒。$tag_imgがtrueならimgタグ、falseなら、画像のURLが返却されます。

    $override_paramsで画像のサイズ等を変更することが出来ます。
    [php]
    echo get_image(‘photo’,1,1,1,null,null,null,’thumbnail’);
    [/php]
    また、配列でパラメーターを渡す事で画像の生成ができるようです。が、ちょっと解読できなかったと言うのと、WordPressの元々の機能で十分かなって思います。

    get_group()

    [php]
    get_group($name_group,$post_id=NULL);
    [/php]

    get_gruoupは一つ一つキーを持ってくるgetではなく、そのグループのキー全てを配列で持ってきます。

    [plain]
    Array
    (
    [1] => Array
    (
    [marca] => Array
    (
    [1] => una marca
    )

    [foto] => Array
    (
    [1] => Array
    (
    [original] => http://mf2.local/wp-content/files_mf/1307562748IrinaShaykWallpaper4.jpg
    [thumb] => http://mf2.local/wp-content/files_mf/1307562748IrinaShaykWallpaper4.jpg
    )

    )

    )

    [2] => Array
    (
    [marca] => Array
    (
    [1] => marca dos
    )

    [foto] => Array
    (
    [1] => Array
    (
    [original] => http://mf2.local/wp-content/files_mf/1307560459IrinaSheik_002014.jpg
    [thumb] => http://mf2.local/wp-content/files_mf/1307560459IrinaSheik_002014.jpg
    )

    [2] => Array
    (
    [original] => http://mf2.local/wp-content/uploads/2011/06/IMG_0001.jpg
    [thumb] => http://mf2.local/wp-content/files_mf/cache/th_cbd8d15a6177234f018d40337840663e_IMG_0001.jpg
    )

    )

    )

    )

    [/plain]

    こんな感じでグループ全てのキーを一度に持ってくる事が出来ます。
    複製可能なグループの場合、戻り値が配列になっているので、foreach等で取り出したりしやすいです。

    また、カスタムフィールドをカスタマイズするプラグイン「MagicFields2」-CREATORISH-で、日本語化ファイルが配布されています。

    結構手軽に大規模な管理画面のカスタマイズが出来てしまうので、なかなか便利。

  • Theme Test Driveが便利だった。

    Theme Test Drive « WordPress Plugins

    WordPressでのサイトをリニューアルするときや、テスト用環境が用意できないときなんかにとても便利でした。

    使い方はUseageのところで、テーマを選択して、『Enable Theme Drive』をクリックすると、デフォルトだと管理者でログインしているとき、そのテーマが適用された状態で表示されます。

    ユーザーレベルは10がデフォルトですが、これを7とかにすると、編集者のユーザーでもそのテーマが適用される用になったりします。

    また、Easy Theme Installationのとこのテキストボックスにテーマのzipが配布されているURLを入力して、Install Themeをクリックすると、テーマがインストールできます。テストしたいテーマの配布元が解ってる場合は便利かも知れません。

    テーマの設定画面のプレビューでも確認出来るのですが、パーマリンク周りはいわゆるクリーンURLにならなかったりだとか、色々制約があるので、Theme Test Driveを活用すると、テーマがホントに適用された状態での確認が出来るので、WordPressサイトのリニューアルとかはかなり効率よくなると思います。

    特にWordPressでブログをやってる場合は、テスト環境を用意するのも手間なので、なかなか便利に使えるプラグインですよー。

  • Custom Post Type Permalinks 0.7.8をリリースしました。

    ブログを1ヶ月半もサボってました。個人的なバタバタなどが続いたので、なかなかかけませんでした。とりあえず、生存はしてます!

    そして、Custom Post Type Permalinksをアップデートしました。内容はバグフィックスです。

    ちょっとこちらのミスで、間違ってバグのあるままリリースされてしまいました。気をつけます。

    そんなわけで、今後ともよろしくお願いします。m(_ _)m

  • Custom Post Type Permalinks 0.7.6をリリースしました。

    Custom Post Type Permalinksをアップデートしました。

    アップデート内容は

    • 親ページが存在する場合のスラッグの追加
    • バグフィックス

    となっております。

    ただし、既知の不具合として、

    1. ‘hierarchical’ => trueなカスタム投稿タイプと、’hierarchical’ => trueなカスタム分類を関連づけている
    2. その投稿タイプパーマリンクにカスタム分類を設定している
    3. 記事が親カテゴリを持つカテゴリ(ターム)に所属している

    の3つを満たすと、記事にアクセスできなくなるという問題があります。

    また、パーマリンクの設定が旨く反映されない場合、一度、WordPressのデフォルトのカスタム構造をデフォルトに戻したあと、また再設定すると直ることが多いです。

    近々マニュアルを整備します。正直こんなに色々使ってもらえるとは思ってなかったので・・・

    とりあえず、TwitterでもFacebookでもメールフォームでも質問などには答えますので、お急ぎの方は個人的にコンタクト下さいm(_ _)m

  • 自分の身は自分で守る!WordPressプラグインを使うときに注意していること

    Twitterのタイムラインを見てたらこんな記事が流れてきました。

    「WP OS FLV」というプラグインで、Trojan.JS.Redirector.ueというのをねじ込まれそうになる・・・ 名前からしてガンブラー系のアレかと予想汗 23 hours ago via Silver Bird ·  Reply ·  Retweet ·  Favorite · powered by @socialditto

    いやいや、そのプラグイン昔使ったことあるけど!!!!いやはやなんとまぁ・・・・

    WordPressのプラグインやテーマに不正なコードが挿入されたなんて話がここ最近増えてきましたね。

    有名処のプラグインにも不正なコードが入っていたってことで、去年ニュースになった気がします。
    WordPressのプラグインに悪質なコードが混入 – ITmedia ニュース

    かといって基本的に利用は自己責任なので、何とか考えなくてはいけない問題です。
    プラグイン無しでWordPress案件をこなすのはなかなかしんどいものがありますし。少なくともContact Form 7 Head CleanerAdmin Menu Editorとかが使えないとホントどーしましょうって感じです。こんなの自分で作れる気がしないですし。

    使わないプラグインはアンインストール

    『入れてみたけど微妙・・・・』ってプラグイン、無効にしたまま放置してませんか?アンインストールが面倒だというのも気持ちはよくわかります。

    有効化していないプラグインの脆弱性を突かれるケースも有るようです。プラグインが有効かどうかに限らずプラグインファイルは読み込まれてはいるので、当然っちゃ当然なんですが。

    プラグインを入れている数が多ければそれだけリスクになるので機能していない無駄なものはアンインストール!

    プラグインむやみやたらと入れない。

    データベースが管理画面から見れたら便利。確かにそうです。僕も開発時にはphpmyAdminをWordPressから見れるようにするプラグインを入れたりします。ただ、少なくとも運用中は要らないですよね。レンタルサーバについてたりしますよね。

    一例としてphpMyadminの話をしましたが、『そのプラグインは本当に必要か?』を吟味してプラグインの導入は行いましょう。公式ディレクトリだからと言って安心できないこんな世の中です。

    タイトルを書き換えるだとかちょっとしたことはfunctions.phpでやっつけた方がいいかもしれません。自分で書いたコードとプラグインの安全性、どちらが高いかなんて、個人の能力や規模や機能によってだいぶ変わってきますので何でもかんでもfunctions.phpで書いた方がいい!とは思いません。ただ、『このプラグインのこの機能だけ使いたい!』って場合は自分で実装した方が良いかも知れません。

    メンテナンスされていないプラグインは避ける

    WordPressは結構頻繁にバージョンアップが行われます。なので、その際にはプラグインも最新バージョンに対応させるとかはやるんですけど、それがされていないプラグインは、セキュリティホールも放置されている可能性があります。
    まぁ、プラグインの規模にもよるのであれですが、とりあえず、1年近く更新がないものは避けるようにしています。

    あんまり気軽にプラグインプラグイン・・・ってのも考え物ですね。
    案件によっては、VaultPress等の導入も検討が必要だと思います。

    サイト改ざんが身近になっている今、改めて考えないといけないことですね。。。。

  • WordPressでログアウト後のリダイレクトの変更

    WordPressを使ったWebサービスを作るとき、ログアウト後のリダイレクト先を変えたいって事がありました。特にユーザー機能は使うのに管理画面は見せたくない!っていうわがままな仕様の場合。

    そんなわけで。

    [php]
    function redirect_fix(){
    wp_safe_redirect("http://example.com");
    exit();
    }
    add_action(‘wp_logout’,’redirect_fix’);
    [/php]

    これだけ!

  • WordPressで管理画面外から投稿を追加するwp_insert_post()と、編集するwp_update_post()、削除するwp_delete_post()

    WordPressでWEBサービスやら、会員制サイトなんかを作りたいとき、やっぱり管理画面を見せたくないシーンがあると思います。そんなときに重宝するのが、wp_insert_post()とwp_update_post()、wp_delete_post()です。

    投稿を追加編集削除というよりは、データベースのthe_postsテーブルをそのまま触っているイメージの方があっている気がします。
    引数にデータ―ベースのフィールド名をキーとした配列を取るので、変数に困ったらデーターベースを覗いてみるのも良いかもしれませんね。後学のためにも。

    こんな感じで使います。
    [php]
    //投稿
    $post_id = wp_insert_post( array(
    ‘post_author’ => $user_id,
    ‘post_title’ => $post_title,
    ‘post_content’ => $post_content,
    ‘post_status’ => ‘publish’
    ) );

    //画像を投稿サムネイルに。
    set_post_thumbnail( $post_id, $post_photo_id);

    //画像に投稿を関連づける
    wp_update_post( array(‘ID’ =>$post_photo_id,’post_parent’ => $post_id ) );
    [/php]

    画像などのメディアも投稿として管理されているので、wp_update_post()でいじくる事ができます。
    コレをページテンプレートに組み合わせることで、管理画面外から投稿の追加・編集ができるページを作成することができます。

    ただ、当然のことながら、セキュリティにはかなり気を遣わないといけない事になりますね。
    PHPのhtmlspecialchars()や、WordPressのattribute_escape()等の文字列のエスケープや、wp_nonce_field()・check_admin_referer()でフォームからの投稿かどうかをちゃんとチェックする等はやっぱり最低限やっておきたいですね。

  • Custom Post Type Permalinks 0.7.5.1をリリースしました。

    Cutstom Post Type Permalinks 0.7.5.1 をリリースしました。

    アップデート内容は、カスタム分類のアーカイブを
    “/投稿タイプ/カスタム分類名/ターム”

    に変更する機能のON OFFができるようにしました。

    あとは、少々のバグフィックスなどを行っております。

    http://wordpress.org/extend/plugins/custom-post-type-permalinks/

    何かあったら教えて下さいm(_ _)m Twitter:@Toro_Unit
    僕の技術レベルなどもあります故、すべてに対応できるかどうかは解りませんが、とりあえず頑張ります!

  • WordPressにショッピングサイトにするプラグインWelcart

    秋口にショッピングサイトの案件があったのですが、EC-CUBEが苦手でどうにかWordPressでできないかなと思ったときに、Welcartで構築してみたのですが、コレがなかなか便利だったので、ご紹介。

    Welcart e-Commerce

    追加される機能

    • クレジットカード対応のショッピングカート+決済画面の導入
    • サイト会員の管理、会員専用の管理画面
    • 商品管理用画面の追加
    • ポイントの管理
    • お問い合わせフォーム
    • 送料管理

    等その他多数のショッピングサイトで使える機能がこれでもかっ!ってくらいに大量に追加されます。

    管理画面の変更点

    導入すると管理画面に、Welcart Shopと、Welcart Managementというメニューが追加され、ここで商品を追加・管理、受注の管理、決済モジュールの設定などができます。

    テーマのカスタマイズ

    導入すると、welcart_defaultというテーマが追加されます。それをカスタマイズするのも良いのですが、既存のテーマにカートを導入したり、自作のテーマに導入することもできます。

    また、デフォルトテーマのwp_themplatesにWelcartで追加されるページ(ログイン周り、会員ページ、決済ページ、個別商品のページなど)のテンプレートが入っています。コレがテンプレートファイルに入っていないと、プラグインのデフォルトのものが適応されます。Welcartのデフォルトテーマの子テーマとして作っても継承ができないので、このフォルダとその中身だけは個別に作ってあげる必要があります。

    また、Welcartの開発元が出しているWelcartホスティングを使うと、インストール、プラグインの初期設定、SSLの設定がすべて終わった状態で開発ができるので、導入のハードルもかなり低いです。
    WordPressでECサイトを作ってみたいと思っている方は、是非、検討してみて下さい。WordPressの資産をかなり有効活用できるので、開発もスムーズに行えますよ。

  • Custom Post Type Permalinks 0.7.4.1をリリースしました。

    Custom Post Type Permalinksの0.7.4.1をリリースしました。

    といってもバグフィックスと若干のコードの書き直し(機能自体に変更無し)です。

    今回のアップデート内容

    • wp_get_archivesに関するバグを修正(type=postbypost)のときのエラー
    • カスタム分類の出力URLの不具合を修正
    • コードの若干の書き直し

    となります。

    このプラグインは、皆様のフィードバックにより、成り立っております。いつもありがとうございます。

    今後ともよろしくお願いします。

  • WordPressのサイドメニューに『カテゴリ別の新規追加』を追加をするプラグイン “Category Post” を公式ディレクトリに公開しました。

    以前WordPressのサイドメニューに『カテゴリ別の新規追加』を追加をするプラグインを作りました。という記事で公開していた、プラグインのブラッシュアップしたものを、公式ディレクトリに公開しました。以前、Add New Category Postという名前でこのサイトで公開していたヤツです。

    プラグインのページはこちら。Category Post

    公式ディレクトリ:http://wordpress.org/extend/plugins/category-post/

    カスタム投稿でやっつけるか、カテゴリーで良いんじゃないかと悩むときはたくさんあると思いますが、そのときの選択の一つとしてご利用頂ければ幸いです。

    機能

    WordPressの管理メニューの“投稿”のサブメニューにカテゴリーごとの記事を追加するリンクを追加します。ついでに元から有る、新規追加を非表示にします。スクリーンショットの通りです。

    メールフォームや、Twitter等でフィードバックを頂ければ幸いです。よろしくお願いします。

  • Custom Post Type Permalinks 0.7.3 をリリースしました。

    毎度おなじみ、Custom Post Type Permalinksのバージョンアップを行いました。

    最新版はこちら:http://downloads.wordpress.org/plugin/custom-post-type-permalinks.0.7.3.zip

    今回の変更点は、主に、データの保存に関する部分の修正です。

    フィードバック等は@Toro_Unitまで頂けたら嬉しいです。