タグ: WordPressプラグイン

  • RS CSV Importer Media Add-On 1.0.0 をリリースしました。

    最近はconcrete5でおなじみの菱川さんが作った、Really Simple CSV Importerというプラグインがありまして。よくお世話になってます。

    この間、画像データを投稿に紐付ける必要がありまして。

    出来れば画像はWordPressのメディアとして管理して、カスタムフィールドに画像のIDを突っ込めればなー。カスタムフィールドにURL突っ込めばダウンロードしてこれないかなーって要件がありましてた。

    ということで、Really Simple CSV Importerのアドオンプラグインを作りました。

    RS CSV Importer Media Add-Onというまんまな名前のプラグインです。

    一昨年くらいにフォークしてその機能をつけたりしてたのですが、URLをそのまま使いたいこともあったりで、アドオンにしておいた方がいろいろ便利だなと言うことで。

    使い方

    Really Simple CSV Importerをインストールして有効化した後、RS CSV Importer Media Add-Onをインストールして有効化して下さい。

    その後はReally Simple CSV Importerの使い方と一緒です。カスタムフィールドの欄に画像などWordPressのメディアとして扱えるファイルのURLが存在した場合、ダウンロードして記事のカスタムフィールドの値をメディアのIDに変更します。

    CSVのサンプルはこちらを参考にして下さい。https://github.com/torounit/rs-csv-importer-media-addon/blob/master/sample/linux.csv

    IDにして保存するので、モンキーレンチのキタジマさんSmart Custom Fieldsとも相性が良かったりします。

    インポートするファイルの拡張子の設定

    really_simple_csv_importer_media_ext2typeというフィルターフックを作りました。

    これにフックすると、インポートするファイルの拡張子を変更することが出来ます。これで、画像はダウンロードするけどPDFへのURLはそのまま、みたいなことも出来るようになってます。

    Sample Code
    add_filter('really_simple_csv_importer_media_ext2type', 'really_simple_csv_importer_media_ext2type');
    
    function really_simple_csv_importer_media_ext2type( $types ) {
        return array(
            'image'       => array( 'jpg', 'jpeg', 'jpe', 'gif', 'png' ),
            'audio'       => array( 'mp3', 'ogg', 'wav', 'wma' ),
            'video'       => array( 'mov', 'mp4', 'mpeg', 'mpg', 'ogm', 'ogv', 'wmv' ),
            'document'    => array( 'doc', 'docx', 'odt', 'pages', 'pdf', 'psd' ),
            'spreadsheet' => array( 'ods', 'xls', 'xlsx' ),
            'interactive' => array( 'swf', 'key', 'ppt', 'pptx', 'odp' ),
            'text'        => array( 'asc', 'csv', 'tsv', 'txt' ),
            'archive'     => array( 'dmg', 'gz', 'rar', 'tar', 'tgz', 'zip'),
            'code'        => array( 'css', 'htm', 'html', 'php', 'js' ),
        );
    }

    使い方wp_ext2typeへのフックと変わらないです。というか内部的にはこれ使ってます。なのでデフォルトでは、wp_ext2typeが許可しているモノを全て許可します。svgなどWordPressがアップロードを許可してないモノはまた別に設定が必要です。WordPressの管理画面からアップロード可能なモノのみ受け付けます。

    レポジトリ

    Github: https://github.com/torounit/rs-csv-importer-media-addon

    バグなどあったらプルリク下さいー。

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

    Custom Post Type Permalinks

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

    Plugin Directory: https://wordpress.org/plugins/custom-post-type-permalinks/

    変更点

    wp_loaded のactionの最後のほうで、Rewrite Ruleの生成を行うように変更しました。

    投稿タイプとタクソノミーが絡むパーマリンクの生成時の不具合の修正のための仕様変更です。

    カスタムタクソノミーのアーカイブの時に、post_typeのクエリを渡せるようにしました。

    管理画面から設定できます。これを渡すと、タクソノミーテンプレートより、カスタム投稿タイプのアーカイブテンプレートが読まれます。

    register_post_typeでパーマリンクを設定できるようにしました。

    register_post_type( 'foo',
        array(
            "public" => true,
            'has_archive' => true,
            "rewrite" => [
                "with_front" => true
            ],
            "cptp_permalink_structure" => "%post_id%"
        )
    );

    こんな感じで、設定できるようになってます。管理画面の設定より優先されます。

    バージョン番号をセマンティックバージョニングにしました。

    Plugin Directoryからアクティブなバージョンが見えるようになったというのもあったりで、セマンティックバージョニングするようにしました。なので、とりあえず、1.0.0です。

    その他、バグFix等多数です。

    Other Notes

    プルリク、バグレポート等、くださいー。

    @Toro_Unit

    Github. https://github.com/torounit/custom-post-type-permalinks

    最近プラグインリリース祭りなのですが、姉妹品のSimple Post Type Permalinksや、Powerful Posts Per Page(PPPP)等もよろしくお願いします。

     

    お酒とか下さい。

    Wish List. http://www.amazon.co.jp/registry/wishlist/COKSXS25MVQV/

     

  • Powerful Posts Per Page 0.8.0をリリースしました。

    pppp

    WordPressの1ページあたりの投稿数(Posts Per Page)を、タクソノミーやカスタム投稿タイプで個別に設定できるようにするプラグイン、Powerful Posts Per Pageの0.8.0をリリースしました。

    1年以上放置してたので、久々の更新です。というか2013年にリリースしたプラグインだったんですね。もっと最近だと思っていたのですが。

    今回のアップデートでは、4.2等でのテスト、テストコードの追加、Classをファイルごとに分割などです。

    内容はほとんど変更してないです。

    これからも細々とメンテナンスしていきます。

     

    Plugin Directory: https://wordpress.org/plugins/pppp/

    Github: https://github.com/torounit/pppp

    プルリクエストなど、お待ちしてますー。

  • WordPress のカスタム投稿タイプのパーマリンクを簡単に変更できるようになるプラグイン「Simple Post Type Permalinks」作った。

    WordPress のカスタム投稿タイプのパーマリンクを簡単に変更できるようになるプラグイン「Simple Post Type Permalinks」作った。

    Simple Post Type Permalinks というプラグインをリリースしました。

    名前通り、投稿タイプごとにパーマリンクを設定できるプラグインです。どこかで聞いたことのあるような名前のプラグインですが、それとはまた別物です。

    できること

    • カスタム投稿タイプごとにパーマリンクを設定。%post_id%%postname%が使用可能。
    • register_post_typeで、パーマリンク構造の定義。

    の2種類です。

    できないこと

    • タクソノミー(カテゴリーやタグを含む)等には対応してません。
    • 日付、著者などのタグも使えません。
    • %post_id%%postname%だけしか使えません。
    • アーカイブのパーマリンクを自動的に追加しません。

    とにかく、シングルページのパーマリンクのカスタマイズだけが可能です

    使い方

    管理画面は、こんな感じです。

    sptp

    例のプラグインと同じく「パーマリンク設定」のページの下にパーマリンク設定のセクションがあります。そこから、適当にパーマリンクを設定して下さい。投稿タイプのスラッグを入れない設定などもできますが、投稿や固定ページのパーマリンクと競合すると404になったりします。

    もしくは、register_post_typeで投稿タイプを定義する際にパーマリンクをコードで設定します。

    register_post_type( 'hoge',
        array(
            "public" => true,
            "sptp_permalink_structure" => "foo/%post_id%"
        )
    );

    開発の理由

    Custom Post Type Permalinksというプラグインをすでにリリースしてますが、その機能縮小版のようなプラグインをなぜリリースしたかってコトなんですケド。

    別に、Custom Post Type Permalinksの開発・メンテナンスは止めません。細々とこれからもやりますよー。

    Custom Post Type Permalinksには、パーマリンクの変更のほかにも、日付アーカイブ、カスタムタクソノミー、いろんな機能が入ってたりします。

    それはそれでいいんですけど、「別に日付アーカイブとか要らないし!」ってときに逆に面倒だったり。かといって設定項目追加したらそれもそれで訳わからんなぁー、ってことになり、とにかくシンプルにカスタム投稿タイプの記事のパーマリンク変更するだけのプラグインを作ったということです。

    なので、同じようなプラグインですけど方向性が違います。そのため、Simple Post Type Permalinksでは投稿タイプのスラッグを無視したパーマリンクも設定できるようになってます。

    あとは単純に、Custom Post Type Permalinksを書き直したい欲を満たすためでもあったりします。

    PHP 5.3以上でしか動作しません。PHP 5.2だと、ファイルが読まれないようにしてます。

    とりあえず、プルリクとか待ってますー!

    Github: https://github.com/torounit/simple-post-type-permalinks

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

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

    WordPress › Custom Post Type Permalinks « WordPress Plugins

    機能面での修正は、PHP5.4対応とか、WordPress3.8でテストしたとかその程度です。
    コードを全面的に見直して、がっつりリファクタリングを行っております。去年の夏から取り組んではいたのですがだいぶかかってしまいました。

    今まで一つのファイル・クラスで行っていたものを複数の小さなモジュールに分離しています。
    ここのモジュールは基本的に独立しているのでアドオン形式の機能追加なども可能です。

    あとソースコードも読みやすくなったはずです。(たぶん。)そんなわけでじゃんじゃんプルリクエストをいただければありがたいです。

    レポジトリはこちら。
    torounit/custom-post-type-permalinks

    パッチ・プルリクエスト・issue・フィードバック等よろしくお願いします。m(_ _)m

  • 各投稿タイプ・タクソノミーのアーカイブでの表示件数を変更する「Powerful Posts Per Page」をリリースしました。

    各投稿タイプ・タクソノミーのアーカイブでの表示件数を変更する「Powerful Posts Per Page」をリリースしました。

    WordPressの管理画面からカスタム投稿タイプや、各タクソノミーごとの表示件数を変更できるプラグイン、Powerful Posts Per Pageをリリースしました!

    このプラグインができること

    WordPressの管理画面の 「設定->表示設定」から、カスタム投稿タイプやタクソノミーのアーカイブページの投稿数を指定できます。

    PPPPのスクリーンショット

    ここで指定された値は、ロード時に、pre_get_postsを使って、WordPressのループを変更します。

    もうcategory.phpやらarchive.phpにquery_postsを書いたり、WordPressのデフォルトの表示件数を1件にしてみたりそんなことする必要はありません!!!!

    開発の経緯

    query_postsを捨てよ、pre_get_postsを使おう【追記あり】【報告あり】 | notnil creation weblog等で、春先当たりからpre_get_postsが大きなブームになっていますよね。

    そんなこんなで、僕もすっかりpre_get_postsの虜になっている訳なんですが。

    ただ、この間のWord Camp Tokyo 2013のテクニカル座談会で、「pre_get_postsとかって初心者には難しくない?」という話があがったり、
    仕事で人にWordPressを教えたりすることがあったりするのですが、WordPressが専門ではない人だとか、デザイナーさんだとか、functions.phpよくわからん!って人にはめちゃくちゃ高いハードルな気がしてます。

    「でも、そんな人にもpre_get_postsを使ってほしいナー」とか、「管理画面からデフォルトの値は設定できるんだったら、他のも管理画面からやりたいよナー」

    と、思ったので作ってみました。教えてと言われてもちゃんと教えられる自信が無いので、プラグインにしました。pre_get_postsを簡単に使うにはいいと思ってます。細かいことはできませんが。

    そんなわけで、ちょっとでも便利そうだなと思ったら、使ってみてください。
    フィードバックは@Toro_Unitや、https://github.com/torounit/ppppやら、フォーラム等でいただければ幸いです。

    余談ですが、制作時間より、「略称をPPPPにしたいがために、Pから始まる単語を探しまくった時間」のほうが長かったです。どういうこっちゃ。

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

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

    • %post_id%を含んだパーマリンクで、添付ファイルのリンクが404になる

    という不具合を修正しました。

    その他、細かいバグフィックスを行いました。

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

    また、いつも通り、何かありましたら、@Toro_Unitまでリプライください。m(_ _)m

  • カスタム投稿タイプとNivo-Sliderで更新しやすいスライドエリアを作る。【Advent Calendar in 信州松本(だけじゃなくてもいいよ)】

    カスタム投稿タイプとNivo-Sliderで更新しやすいスライドエリアを作る。【Advent Calendar in 信州松本(だけじゃなくてもいいよ)】

    Advent Calendar in 信州松本(だけじゃなくてもいいよ)ということで、
    昨日のthinkAmiさんの機能のGoogleDriveAPIでHTMLファイルを作成し、GoogleドライブでWebサイト公開してアルクマを追いかける – メモ的な思考的なに引き続き、19日目を担当させてもらいます。Toro_Unitです。

    Google App Engineって楽しそうですね。プログラマさんの記事を読むと夢がほんとに広がります。

    そんなわけで、「何か作りたい!」という衝動に駆られたのですが、WordPressのカスタム投稿についてのプラグインを作ってたりするので、せっかくだからWordPressのカスタム投稿タイプでちょっと変わったことをやってみました。

    WP Custom Slider:https://github.com/Toro-Unit/wp-custom-slider

    デモサイト:https://torounit.com/wpcustomslider/

    WordPressのカスタム投稿タイプ&投稿サムネイルとNivo-Sliderでコンテンツスライダーを作ってみました。

    カスタム投稿タイプ部分

    [php]
    register_post_type(‘hoge’,array(
    ‘public’ => false,
    ‘show_ui’ => true,
    ‘show_in_menu’ => true,
    ‘query_var’ => false,
    ‘capability_type’ => ‘post’,
    ‘has_archive’ => false,
    ‘supports’ => array( ‘title’, ‘editor’, ‘thumbnail’ )
    );
    [/php]

    register_post_typeのpublicをfalseにすることで、URLでアクセスできないカスタム投稿タイプを作ることができます。
    また、supports値で、使う要素を制御できます。タイトルや本文入力欄も消すことだってできます。

    詳しくはCodexを!: 関数リファレンス/register post type – WordPress Codex 日本語版

    データの取得

    これだけだと「一体何に使うんじゃい!」って感じなのですが、このデータを
    [php]
    get_posts(‘post_type=hoge&posts_per_page=-1’);
    [/php]

    みたいな形で取得することができます。
    あとは、foreachに突っ込んでやりたい放題です。

    キャプションの部分は本文入力欄を使っています。setup_postdataに取ってきた記事データを突っ込むとthe_content等のテンプレートタグが使えるんですが、今回は本文が取れれば十分だったので、

    [php]
    $content = apply_filters(‘the_content’,$post->content);
    [/php]

    みたいなやり方で、本文をもってきています。ここまでで、大体完成。

    仕上げ

    そして、Nivo-Sliderを突っ込むだけなんですが、横幅が親要素の横幅まで拡大されてしまうので、置く場所によってはサイズがおかしくなる場合があったりしますので、

    [php]
    function fix_slide_size($size) {
    return array( 960, 400 );//横幅,高さ
    }
    add_filter("wp_custom_slider_size", "fix_slide_size");
    [/php]

    みたいにフィルターフックを使って大きさをカスタマイズできるようにしています。

    [php]
    public function set_image_size() {
    global $content_width;

    if($content_width) {
    $width = $content_width;
    }else {
    $width = 960;
    }
    $size = apply_filters("wp_custom_slider_size",array( $width, 350 ));
    add_image_size("slide", $size[0], $size[1], true);
    }
    [/php]

    ただ、apply_filtersがadd_filterよりも先に実行されると困るので、’after_setup_theme’というアクションフックに登録することで、テーマの読み込みが終わった後にプラグインが機能するようにしたりします。

    使い方

    いろいろ書きましたが、使い方としては、/wp-content/pluginsにプラグインを解凍・有効化して、

    テーマの中で、表示したい場所に
    [php]
    <?php wp_custom_slider();?>
    [/php]

    と書くだけです。サイズのカスタマイズや管理画面でのメニューなどの変更は、functions.phpにフィルターフックをちょこちょこ書いてあげれば、大丈夫。

    そんなわけで出来上がったのが、こちらのデモサイトです。
    Githubにも公開しています。https://github.com/Toro-Unit/wp-custom-slider

    カスタム投稿タイプでこんなこともできます!カスタムフィールドも合わせて使うと画像のリンクのURLなどが設定できたり夢が広がります。

    APIもかなり整備されているのでプラグイン制作も意外に簡単にできてしまうのでトライしてみてください。

    次は・・・

    明日は、4_1さんです。
    Advent Calendar in 信州松本(だけじゃなくてもいいよ)にお声かけいただきありがとうございました。m(_ _)m
    あと一週間、がんばっていきましょう!

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

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

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

    アップデート内容はこんな感じです。

    • バグフィックス
    • 管理画面周りの変更
    • Pointer APIの使用
    • コメントや、個別記事でのページング等の不具合も解消したつもりです。
    • 申し訳程度にフィルターフックを実装。今のところ、デフォルトのパーマリンク設定を変えるくらいしか使い道はないです。
    • マルチサイトでも一応動作します。

    with_frontにはまだ対応していません。カスタム投稿タイプ登録時にスラッグを”foo/bar”等にすれば、下の改装でカスタム投稿タイプ活用できるとは思います。
    https環境とか、nginx環境とかでのテストはまるでできていないので、ちょっとどうしましょうという感じではありますが。

    そんなわけで、例によっていつものごとく@Toro_Unitまでフィードバックいただければ幸いです。

    よろしくお願いします。m(_ _)m

  • カスタムフィールドのリピートができる、Custom Field Suite

    http://komodo.arrow.jp/wp/733/ Custom Field Suite-複数フィールドのリピート可能 | WordPress 編

    カスタムフィールドのカスタマイズをするプラグインは度々紹介しているんですけど、リピートの機能(同一フィールドの追加)がなかなか素敵だったので、紹介します。

    WordPress › Custom Field Suite « WordPress Plugins

    まぁ、Advanced Custom Field(ACF)をフォークしたプラグインなのでリピートも似ていますが・・・・

    Magic Field 2等では出来ない、リピート内にリピートを入れたり等の芸当が出来ます。ACFだと$25係ってしまううんですがそれも無料です。その分寄付して下さいってことでしょう。

    なのでアクティベートしなくて良いので色々いじり倒せたり出来ます。
    ただ、管理画面の綺麗さや、日本語化、アドオンの多さ等々ACFにしかできないことも多々あるのでそこは一長一短な感じですね。

    ACFの簡易版という認識で使うと良いかなと思います。ACFが多機能すぎてあれ?ってなっちゃう場面とかでもなかなか使い勝手が良いと思います。

  • 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でブログをやってる場合は、テスト環境を用意するのも手間なので、なかなか便利に使えるプラグインですよー。

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

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

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

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

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

    機能

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

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