SlideShare a Scribd company logo
PHP+WordPress   有限会社アリウープ 柏岡 秀男 Twitter:@kashioka Kashioka(at)lleyoop.jp http://alleyoop.jp
自己紹介 2002 年よりPHPを中心としたWEBアプリケーション開発会社を始める PHPカンファレンスでは2000年の開始当初から主に初心者セッションや懇親会の仕切りを担当 バリバリの職人系 WEB アプリ屋です そして PHP   WordPress LOVE !
他アプリケーションとの連動 テンプレート埋め込み プラグイン化 単純に他アプリに取り込むのであればスクレイピング OpenIDの利用(プラグイン) クッキーやセッションの利用(ドメインに注意) フレームワーク等からDBを直接参照(後ほどのセッション参照)
テンプレートについて 簡単なカスタマイズはテンプレートから
テンプレート構造(デフォルトテーマ) 404.php comments.php image.php search.php archive.php footer.php index.php searchform.php archives.php functions.php links.php sidebar.php comments-popup.php header.php page.php single.php
テンプレート構造例(カスタム) 404.php footer.php links.php sidebar-single.php 960.css functions.php page.php sidebar.php archive.php header.php reset.css single.php Image.php rtl.css style.css archives.php Images screenshot.png tag.php comments-popup.php index.php search.php text.css comments.php index_bak.php searchform.php wp-config.php
ページ構成 header.php footer.php sidebar.php single.php page.php category.php archive.php ページ描画時にそれぞれのファイルが読み込まれる テンプレートファイルはPurePHP
あるテーマの page.php の中身 <?php  get_header (); ?> <div id=&quot;content&quot;  class=&quot;grid_8&quot;> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <div class=&quot;post&quot; id=&quot;post-<?php the_ID(); ?>&quot;> <h2><?php the_title(); ?></h2> <div class=&quot;entry&quot;> <?php the_content('<p class=&quot;serif&quot;>Read the rest of this page &raquo;</p>'); ?> <?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?> </div> </div> <?php endwhile; endif; ?> <?php edit_post_link('Edit this entry.', '<p>', '</p>'); ?> </div> <?php  get_sidebar ('single'); ?> <?php  get_footer (); ?>
プラグインについて
プラグイン 探してみて無い場合は作ってしまえばよい http:// wpdocs.sourceforge.jp / プラグインの作成 Worpress に対して行われる処理にフックされプラグインの処理を行う。 アクションとフィルタの2種類がある アクション --WordPress  で発生するイベントによって実行されます。  フィルタ -- 出力時に実行されテキストデータを変更するものです。
作り方—プラグイン動作の仕組み イベント発生時に実行する  PHP  関数をプラグインファイル内に作成  add_action,add_filter  を呼び出して  WordPress  にフック  class alleyoopChiezo{ function __construct(){ } function outputChiezo($content) { if(!is_single()) return $content; $content .= $this->getQuestion(); return $content; } 中略 } $ac = new alleyoopChiezo(); add_filter('the_content', array(&$ac,'outputChiezo'),200); プラグイン内の  PHP  関数が挿入され、始動される
アクションフックの一例 publish_post  投稿記事が公開された際、または公開済みの記事の情報が編集された際に実行する。  comment_post  コメントがデータベースに保存される直前に実行する。  trackback_post  投稿記事にトラックバックが追加された際に実行する。  wp_meta  sidebar.php テンプレートが wp_meta 関数を呼び出す際に実行し、プラグインがサイドバーにコンテンツを挿入することができるようにする。
フィルタフックの一例 the_title  the_content  the_tags  データベースから取得したデータを画面に出力する前に適用される。  詳しくは http://wpdocs.sourceforge.jp/ プラグイン _API/
簡単なカスタマイズ The_title や the_content 等にフックする ややこしい処理は外部クラスとしてライブラリ化してしまう。 既存のライブラリ化したものの再利用が可能
スクレイピングについて コンテンツ取り込み WordPress 他システム
OpenPNE に読み込む例 HTTP/Client PEAR のパッケージ require_once &quot;HTTP/Client.php&quot;; $client =& new HTTP_Client(); $client->get($blog_url); $response = $client->currentResponse() $body = $response['body']; //URL 変更 $after = preg_replace('/a href=([\'|\&quot;])+(http:\/\/.+)(\/[0-9a-z-\/._?=&%\[\]~]*)/i',&quot;a href=$1&quot; . OPENPNE_URL . '?m=pc&a=page_h_view_colum&b=' . $colum_name . '&q=$2$3',$body); //GOLD 対応 if(getGold($u)){ $after = preg_replace('/\[GOLD\](.+)\[\/GOLD\]/i','',$after); } $this->set('h_column_body', $after);
スクレイピングTip <HTML> <BODY> < TITLE>XXX</TITLE> <DIV ID= contents > <a href=http://sss.com>a</a> <a href=http://sss.com>a</a> コンテンツ < / DIV> </BODY> </HTML> Wordpressのページ html SQL ( http://www.jonasjohn.de/lab/htmlsql.htm ) SQL のように HTML の要素を抜ける WHERE 句 WHERE  $class  == “classname&quot; WHERE  $id  == “idname&quot; WHERE preg_match(&quot;/^http:///&quot;,  $href )
OpenID WP-OpenID 他各種プラグインがある 用途に合わせ考える mixiOpenID や hatenaOpenID との連動も可能 OpenID の仕組みが初めから入っているアプリであれば ID 連動が簡単
クッキーやセッション 別アプリで動いているクッキーやセッションを利用しユーザ権限等を再利用する クッキーにはドメイン指定がされている場合があるので注意が必要 setcookie(&quot;TestCookie&quot;, $value, time()+3600, &quot;/~rasmus/&quot;, &quot;.example.com&quot;, 1);   http://www.php.net/manual/ja/function.setcookie.php
まとめ 連動する目的を事前に考える WordPress のカスタマイズは極力やめる バージョンアップ時に対応が難しいため ライブラリ化した上でのプラグイン化を行う 他システムから利用する場合もバージョンアップに引きずられない設計、設置を考える
ご清聴ありがとうございました。 開発その他のご相談、お気軽にe-mail,メッセージしてください
PHP+WordPress   有限会社アリウープ 柏岡 秀男 Twitter:@kashioka Kashioka(at)lleyoop.jp http://alleyoop.jp

More Related Content

PDF
第21回Creators MeetUp
PDF
20091030cakephphandson 01
PDF
WordBeachDeathMarchWorkshop
PPTX
Fuelphp1.8を始めたい
PPT
mobylet ケータイサイト30分クッキング
PDF
実"戦"CakePHP Plugin
PDF
10分でわかるFuelPHP @ OSC2013 Nagoya
KEY
最近、僕がハマったFuelPHPの紹介
第21回Creators MeetUp
20091030cakephphandson 01
WordBeachDeathMarchWorkshop
Fuelphp1.8を始めたい
mobylet ケータイサイト30分クッキング
実"戦"CakePHP Plugin
10分でわかるFuelPHP @ OSC2013 Nagoya
最近、僕がハマったFuelPHPの紹介

What's hot (20)

PPTX
今、最も勢いのあるWebフレームワーク「fuel php」
PDF
WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!
PDF
今、最もイケてるPHPフレームワークLaravel4
PDF
FuelPHP Osu Nagoya vol.1
PDF
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
PPTX
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
PDF
Pyramid入門
PDF
10分でわかるFuelPHP @ 2011/12
PDF
WordPressテーマ作成
PDF
concrete5デザインカスタマイズに必要なPHPの知識
PDF
Customize CakePHP bake
PDF
WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!
PDF
Osc2014
PDF
PHPの今とこれから2016
PDF
WordPress実践 導入からカスタマイズまで
PDF
FuelPHPでのファイルアップロード
PDF
NetBeans plugin for wordpress
PPT
今、最もイケてるPHPフレームワークLaravel4
PDF
CodeIgniter入門
PDF
Vue入門
今、最も勢いのあるWebフレームワーク「fuel php」
WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!
今、最もイケてるPHPフレームワークLaravel4
FuelPHP Osu Nagoya vol.1
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
Pyramid入門
10分でわかるFuelPHP @ 2011/12
WordPressテーマ作成
concrete5デザインカスタマイズに必要なPHPの知識
Customize CakePHP bake
WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!
Osc2014
PHPの今とこれから2016
WordPress実践 導入からカスタマイズまで
FuelPHPでのファイルアップロード
NetBeans plugin for wordpress
今、最もイケてるPHPフレームワークLaravel4
CodeIgniter入門
Vue入門
Ad

Similar to Php+Word Press (20)

KEY
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
PDF
12 総合演習Word Pressの利用
PDF
4時間まったりWordPressテーマ作成講座
KEY
WordPress中級者への道!テンプレートタグはどう動くのか!?
KEY
WordPressプラグイン作成入門
PDF
アプリケーションプラットホームとしてのWordPress
PDF
WordPressAPI
PDF
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
PDF
WordPress を使いこなそう
PDF
WordBech Osaka No.28
PDF
Wp プラグインapiから理解するword press.share
PDF
テーマ制作時の疑問とノンプログラマーにも優しいテーマを考える
PDF
WordPressのオススメスライドとか記事とか集めました。(2012.10.13 WordBench神戸)
PDF
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
PDF
Ec cube開発合宿 プラグインセミナー
ODP
Pinoco phptal-phpcon-kansai
PDF
SaCSS vol.24
PDF
SaCSS vol. 24
PDF
Web programming introduction
PDF
Mizuno buddypress-plugin
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
12 総合演習Word Pressの利用
4時間まったりWordPressテーマ作成講座
WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPressプラグイン作成入門
アプリケーションプラットホームとしてのWordPress
WordPressAPI
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
WordPress を使いこなそう
WordBech Osaka No.28
Wp プラグインapiから理解するword press.share
テーマ制作時の疑問とノンプログラマーにも優しいテーマを考える
WordPressのオススメスライドとか記事とか集めました。(2012.10.13 WordBench神戸)
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
Ec cube開発合宿 プラグインセミナー
Pinoco phptal-phpcon-kansai
SaCSS vol.24
SaCSS vol. 24
Web programming introduction
Mizuno buddypress-plugin
Ad

More from Hideo Kashioka (14)

PDF
実体験に基づく、成功するスクラム vs 失敗するスクラム 何が違う? 2024年6月22日
PDF
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
PDF
スクラム初心者セッション.pdf
PPTX
XP祭りオフショアメンバーのいるスクラム.pptx
PPTX
PHPCON_TOKYO_2022_Bigginer.pptx
PDF
日本とオフショアのハイブリットチームのスクラム
PDF
Phpcon2020sponsor lt php8_on_lambda
PDF
Phpcon tokyo 20120_bigginer
PDF
Phpcon2001 in tokyo
PPTX
明日の開発カンファレンスパネル
PDF
PHPカンファレンス2016 初心者セッション
PPTX
Php初心者セッション2014ppt
PPTX
PHP初心者セッション2013
PPT
2009 PHP初心者
実体験に基づく、成功するスクラム vs 失敗するスクラム 何が違う? 2024年6月22日
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
スクラム初心者セッション.pdf
XP祭りオフショアメンバーのいるスクラム.pptx
PHPCON_TOKYO_2022_Bigginer.pptx
日本とオフショアのハイブリットチームのスクラム
Phpcon2020sponsor lt php8_on_lambda
Phpcon tokyo 20120_bigginer
Phpcon2001 in tokyo
明日の開発カンファレンスパネル
PHPカンファレンス2016 初心者セッション
Php初心者セッション2014ppt
PHP初心者セッション2013
2009 PHP初心者

Php+Word Press