Your SlideShare is downloading. ×
WordPress on Movable Type
WordPress on Movable Type
WordPress on Movable Type
WordPress on Movable Type
WordPress on Movable Type
WordPress on Movable Type
WordPress on Movable Type
WordPress on Movable Type
WordPress on Movable Type
WordPress on Movable Type
WordPress on Movable Type
WordPress on Movable Type
WordPress on Movable Type
WordPress on Movable Type
WordPress on Movable Type
WordPress on Movable Type
WordPress on Movable Type
WordPress on Movable Type
WordPress on Movable Type
WordPress on Movable Type
WordPress on Movable Type
WordPress on Movable Type
WordPress on Movable Type
WordPress on Movable Type
WordPress on Movable Type
WordPress on Movable Type
WordPress on Movable Type
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

WordPress on Movable Type

1,055

Published on

Movable Type上でWordPressのデータを扱うことができる「WPConnector」というプラグインの紹介です(YAPC::Asia Tokyo 2013バージョン)。

Movable Type上でWordPressのデータを扱うことができる「WPConnector」というプラグインの紹介です(YAPC::Asia Tokyo 2013バージョン)。

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,055
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
1
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 藤本 壱 2013/9/20 YAPC::Asia Tokyo 2013
  • 2. 自己紹介 WPConnectorプラグインの概要 WPConnectorプラグインの内部動作 まとめ
  • 3. 藤本 壱(ふじもと はじめ) 兵庫県伊丹市出身 群馬県前橋市在住
  • 4. 本職はPC系のフリーライター 2004年秋からMovable Typeユーザー さまざまなプラグインを開発
  • 5. テーマ/プラグインが豊富 動的出力(管理者にとって手間が少ない) テンプレートが生PHP(WordPress以外にも応用 が利く) 非オブジェクト指向(なんちゃってPHPerでも一応 カスタマイズできる) 無償
  • 6. テンプレートタグがHTMLも出力(データとHTMLを 分離しにくい) 例:wp_get_archives, wp_list_categories 静的出力に向かない ステージングサーバー/公開サーバーを分離し にくい 本体のコードが読みにくい(非オブジェクト指 向・・・) MVCが分離していない
  • 7. WordPressとMovable Typeを組み合わせて 相互補完 でもどうやって? WPConnectorプラグイン
  • 8. WordPressのオブジェクト(投稿等)をMTの管 理画面で管理 Movable Typeのウェブサイトの機能で WordPressのブログをグループ化 WordPressのデータをMovable Typeのテンプ レートタグで出力 WordPressの投稿等の状態が変化したときに Movable Typeのテンプレートを自動的に再構 築(現状はインデックステンプレートのみ)
  • 9. Webアプリケーション開発のフレームワーク Object Relational Mapper (Data::ObjectDriver,MT::Object) Model(Perlのロジック) View(テンプレート) Controller(mt.cgi/config.yaml) 新しい流れにも対応 PSGI/nginx(Movable Type 5.2~) Data API(Movable Type 6.0~)
  • 10. クラス 内容 MT::Entry ブログ記事 MT::Page ウェブページ MT::Asset アイテム MT::Category カテゴリ MT::Tag タグ MT::Placement ブログ記事とカテゴリのリンク MT::Blog ブログ MT::Author ユーザー
  • 11. IDが1番のブログから記事を読み込んでタイト ルを出力 use MT::Entry; my @entries = MT::Entry->load({ blog_id => 1 }); for my $entry (@entries) { print $entry->title . “¥n”; } • SQLは書かない
  • 12. 各種オブジェクト(MT::Entryなど)の一覧画面を 出力するフレームワーク 以下の機能が標準実装 各フィールドの表示オン/オフの切り替え フィールドの値による並べ替えと検索 Ajaxによるページング 各クラスではフィールドの表示/検索/並べ替 え方法のみ実装すれば良い 簡単なオブジェクト一覧画面ならyamlで定義可 能
  • 13. MT::Objectを継承 WordPressのオブジェクトを抽象化したクラス WP::Objectを継承して各オブジェクトに対応する クラスを作成 Listing Frameworkで各オブジェクトの一覧を表 示
  • 14. クラス 内容 WP::PostObject 投稿系(投稿,固定ページ,メディア,カス タム投稿タイプ等) WP::PostMeta 投稿のメタ情報(カスタムフィールド) WP::Taxonomy 分類系(カテゴリ,タグ,カスタム分類等) WP::TermRelationship 投稿系と分類系のリンク WP::Blog ブログ WP::Comment コメント WP::User ユーザー
  • 15. 投稿を読み込んでタイトルを出力 use WP::Post; my @posts = WP::Post->load({ wp_blog_id => 1 }); for my $post (@posts) { print $post->title . “¥n”; }
  • 16. my $terms = { status => 'publish' }; my $args = { sort => 'authored_on', direction => 'descend', limit => 5, join => WP::TermRelationship->join_on( undef, { object_id => ¥('= ' . WP::Post->datasource . '_id'), }, { join => WP::Category->join_on( undef, [ { id => ¥('= ' . WP::TermRelationship->datasource . '_taxonomy_id') }, { name => ‘インターネット' }, ], ), unique => 1, } ), }; my @posts = WP::Post->load($terms, $args); 「インターネット」カテゴリの投稿を5件読み込み
  • 17. MTとWPではデータベースのテーブル名やフィー ルド名の命名規則が異なる MT テーブル名は「mt_オブジェクト名」 「mt_entry」や「mt_blog」など フィールド名は「オブジェクト名_情報名」 「entry_title」や「blog_name」など WPには厳密な規則はない WPはブログごとにテーブルの組が作られる WPのテーブルに対してビューを作って差異を吸 収
  • 18. ブログはMovable Typeで(WordPressは論外w) Movable Typeコミュニティにぜひご参加を ユーザーコミュニティサイト計画中 MTOSをフォークするかも? プログラマが不足
  • 19. イベントにもぜひご参加を MTDDC Meetup HOKKAIDO 2013(10月5日) MTCafe Saitama 2013 Autumn(11月2日) MTDDC Meetup NAGOYA 2014(2014年1月予定)
  • 20. WPConnectorプラグインでMovable Typeから WordPressのデータを扱える WP::ObjectでPerlのプログラムからWordPressの データを扱える Movable Type(およびそのコミュニティ)にぜひご 協力を

×