SlideShare une entreprise Scribd logo
WordPress
           (sotarok)
http://nequal.jp/
twitter.com/sotarok
•                    (              `)

•   (   `)

•




        Copyright © nequal, Creative Commons Attribution-Noncommercial
                                         2.1 @ WordPress mini seminar.
sotarok



          •
          •
          •
          •
          • Ethna
          • nequal

             Copyright © nequal, Creative Commons Attribution-Noncommercial
                                              2.1 @ WordPress mini seminar.
•   CMS


•




          Copyright © nequal, Creative Commons Attribution-Noncommercial
                                           2.1 @ WordPress mini seminar.
•                                    Website
                                     on
    –                                some framework
•
    –


    –

• WordPress


              Copyright © nequal, Creative Commons Attribution-Noncommercial
                                               2.1 @ WordPress mini seminar.
• PHP              2009
  – http://phpcon.php.gr.jp/2009/
  –         WordPress
  –        Program            WordPress




                      Copyright © nequal, Creative Commons Attribution-Noncommercial
                                                       2.1 @ WordPress mini seminar.
x WordPress                                      1


•
  WordPress
• WordPress




                Copyright © nequal, Creative Commons Attribution-Noncommercial
                                                 2.1 @ WordPress mini seminar.
x WordPress                                        2


•
•   WordPress




        Copyright © nequal, Creative Commons Attribution-Noncommercial
                                         2.1 @ WordPress mini seminar.
WordPress
•
•

•                                                     WP

•




    Copyright © nequal, Creative Commons Attribution-Noncommercial
                                     2.1 @ WordPress mini seminar.
WP
      • wp-content/themes/default
.                              |--      index.php
|--   404.php                  |--      ja.mo
|--   archive.php              |--      ja.po
|--   archives.php             |--      kubrick.pot
|--   comments-popup.php       |--      links.php
|--   comments.php             |--      page.php
|--   footer.php               |--      rtl.css
|--   functions.php            |--      screenshot.png
|--   header.php               |--      search.php
|--   image.php                |--      sidebar.php
|--   images                   |--      single.php
|     |-- audio.jpg            `--      style.css
|     |-- ...              Copyright © nequal, Creative Commons Attribution-Noncommercial
                                                            2.1 @ WordPress mini seminar.
index.php
                               archive.php
                                single.php
                                 page.php
                                    ...




Copyright © nequal, Creative Commons Attribution-Noncommercial
                                 2.1 @ WordPress mini seminar.
header.php
                                footer.php
                               sidebar.php
                                    ...




Copyright © nequal, Creative Commons Attribution-Noncommercial
                                 2.1 @ WordPress mini seminar.
header, footer
•
    get_header(), get_footer(),                          header.php,
    footer.php

        get_header();              header.php


            index.php


         get_footer();              footer.php

                         Copyright © nequal, Creative Commons Attribution-Noncommercial
                                                          2.1 @ WordPress mini seminar.
WP
•               WP                                             CSS



              header.php


         [[      WP               ]]


              footer.php

                 Copyright © nequal, Creative Commons Attribution-Noncommercial
                                                  2.1 @ WordPress mini seminar.
header.php
•
•




             Copyright © nequal, Creative Commons Attribution-Noncommercial
                                              2.1 @ WordPress mini seminar.
header.php
<?php
// ethna
    •
require_once dirname(__FILE__) .
'/../../../../../app/Pcj_Controller.php';
$ethna = new Pcj_Controller();

//
$renderer =& $ethna->getRenderer();
$smarty =& $renderer->engine;
$smarty->left_delimiter = '{{';
$smarty->right_delimiter = '}}';

$GLOBALS['ethna'] = array(
    'ethna' => $ethna,
    'renderer' => $renderer,
    'smarty' => $smarty, Copyright © nequal, Creative Commons Attribution-Noncommercial
);                                                        2.1 @ WordPress mini seminar.
header.php
<?php
// ethna
    •
require_once dirname(__FILE__) .
'/../../../../../app/Pcj_Controller.php';
$ethna = new Pcj_Controller();

//
$renderer = $ethna->getRenderer();
$smarty = $renderer->engine;
$smarty->left_delimiter = '{{';
$smarty->right_delimiter = '}}';

$GLOBALS['ethna'] = array(
    'ethna' => $ethna,
    'renderer' => $renderer,
    'smarty' => $smarty, Copyright © nequal, Creative Commons Attribution-Noncommercial
);                                                        2.1 @ WordPress mini seminar.
header.php
<?php
// ethna
    •                       Ethna
require_once dirname(__FILE__) .        Smarty
'/../../../../../app/Pcj_Controller.php';
$ethna = new Pcj_Controller();

//
$renderer = $ethna->getRenderer();
$smarty = $renderer->engine;
$smarty->left_delimiter = '{{';
$smarty->right_delimiter = '}}';

$GLOBALS['ethna'] = array(
    'ethna' => $ethna,
    'renderer' => $renderer,
    'smarty' => $smarty, Copyright © nequal, Creative Commons Attribution-Noncommercial
);                                                        2.1 @ WordPress mini seminar.
header.php
<?php
// ethna
    •
require_once dirname(__FILE__) .
'/../../../../../app/Pcj_Controller.php';
$ethna = new Pcj_Controller();   footer.php

//
$renderer = $ethna->getRenderer();
$smarty = $renderer->engine;
$smarty->left_delimiter = '{{';
$smarty->right_delimiter = '}}';

$GLOBALS['ethna'] = array(
    'ethna' => $ethna,
    'renderer' => $renderer,
    'smarty' => $smarty, Copyright © nequal, Creative Commons Attribution-Noncommercial
);                                                        2.1 @ WordPress mini seminar.
header.php
<?php if ( is_singular() )
wp_enqueue_script( 'comment-reply' ); ?>
<?php wp_head(); ?>

<?php
echo $renderer->perform('layout/header.tpl', true);
echo $renderer->perform('layout/globalnavi.tpl',
true);
?>
<div id="main">




                         Copyright © nequal, Creative Commons Attribution-Noncommercial
                                                          2.1 @ WordPress mini seminar.
header.php
...
<?php if ( is_singular() )
wp_enqueue_script( 'comment-reply' ); ?>
<?php wp_head(); ?>

<?php
echo $renderer->perform('layout/header.tpl', true);
                          WP
echo $renderer->perform('layout/globalnavi.tpl',
true);
?>
<div id="main">                           OK
                                                     HTML

                         Copyright © nequal, Creative Commons Attribution-Noncommercial
                                                          2.1 @ WordPress mini seminar.
header.php
...
<?php if ( is_singular() )
wp_enqueue_script( 'comment-reply' ); ?>
<?php wp_head(); ?>

<?php
echo $renderer->perform('layout/header.tpl', true);
echo $renderer->perform('layout/globalnavi.tpl',
true);
?>
<div id="main">



                         Copyright © nequal, Creative Commons Attribution-Noncommercial
                                                          2.1 @ WordPress mini seminar.
• WP
    – header, footer                                             OK
•



•
    – WordPress

       •   Ethna



                       Copyright © nequal, Creative Commons Attribution-Noncommercial
                                                        2.1 @ WordPress mini seminar.
WordPress
WP

•
    –                   wp-config.php
• DB




        Copyright © nequal, Creative Commons Attribution-Noncommercial
                                         2.1 @ WordPress mini seminar.
• Ethna   PHP
  – Symfony yaml


• ETHNA/etc/appid-ini.php
• ETHNA/www/blog/wp-config.php




                   Copyright © nequal, Creative Commons Attribution-Noncommercial
                                                    2.1 @ WordPress mini seminar.
• ETHNA/www/blog/wp-config.php

<?php
/**
 * WordPress
 *
...

 */

/**
 * Ethna                          ethna ini.php
 */
require_once dirname(__FILE__) nequal,'/../../etc/pcj-
                         Copyright ©
                                     . Creative Commons Attribution-Noncommercial
ini.php';                                           2.1 @ WordPress mini seminar.
• ETHNA/etc/pcj-ini.php

<?php
/*
 * pcj-ini.php
 *
 * WP              define
 * WP    wp-config                         require
 *
 */

define('DB_NAME', 'dbname');
define('DB_USER', 'dbusername');
define('DB_PASSWORD', 'dbpassword'); Commons Attribution-Noncommercial
                         Copyright © nequal, Creative
define('DB_HOST', 'localhost');                       2.1 @ WordPress mini seminar.
• ETHNA/etc/pcj-ini.php (                )

$config = array(
    // site
    'url' => 'http://phpcon.php.gr.jp/',

     // debug
     //                              false
     'debug' => false,

    // db
    // sample-1: single db
    'dsn' => 'mysql://' . DB_USER . ':' .
DB_PASSWORD . '@' . DB_HOST . © '/' Creative Commons Attribution-Noncommercial
                         Copyright nequal,
                                           . DB_NAME,
...                                              2.1 @ WordPress mini seminar.
WP
•              DB
    –   wp_comments
    –   wp_links
    –   wp_options
    –   wp_postmeta
    –   wp_posts
    –   wp_terms
    –   wp_term_relationships
    –   wp_term_taxonomy
    –   wp_usermeta
    –   wp_users

                          Copyright © nequal, Creative Commons Attribution-Noncommercial
                                                           2.1 @ WordPress mini seminar.
• Ethna
      ORM
<?php

class Pcj_DB_WpPosts extends Pcj_DB
{
    public $table_name = 'wp_posts';
}
    •

        –     ORM

                         Copyright © nequal, Creative Commons Attribution-Noncommercial
                                                          2.1 @ WordPress mini seminar.
$entry = $this->db->Wp_Posts->find(
           D::D_FIRST,
           array(
               'post_status' => 'publish',
               'post_type' => 'post',
               'order' => 'post_date DESC',
           )
       );
$this->af->setApp('blog_post_data', $entry);




                        Copyright © nequal, Creative Commons Attribution-Noncommercial
                                                         2.1 @ WordPress mini seminar.
•   /
•
•                HTML
•
•
•
•




        Copyright © nequal, Creative Commons Attribution-Noncommercial
                                         2.1 @ WordPress mini seminar.
•
        SQL

•
    –         WP

    –




              Copyright © nequal, Creative Commons Attribution-Noncommercial
                                               2.1 @ WordPress mini seminar.
->
•
•
•
•




         Copyright © nequal, Creative Commons Attribution-Noncommercial
                                          2.1 @ WordPress mini seminar.
• WP

•                                         WP
             (^^;
•      PHP
         (

•



                Copyright © nequal, Creative Commons Attribution-Noncommercial
                                                 2.1 @ WordPress mini seminar.
• WordPress
    –
•
    – 1.
        • WP
        •
    – 2. DB
        • DB
        •



               Copyright © nequal, Creative Commons Attribution-Noncommercial
                                                2.1 @ WordPress mini seminar.
Question?

Contenu connexe

Similaire à フレームワークxWordPress

symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
Fabien Potencier
 
Wp3 refresh pgh
Wp3 refresh pghWp3 refresh pgh
Wp3 refresh pgh
MrDirby
 
WordPress Performance & Scalability
WordPress Performance & ScalabilityWordPress Performance & Scalability
WordPress Performance & Scalability
Joseph Scott
 
The symfony platform: Create your very own framework (PHP Quebec 2008)
The symfony platform: Create your very own framework (PHP Quebec 2008)The symfony platform: Create your very own framework (PHP Quebec 2008)
The symfony platform: Create your very own framework (PHP Quebec 2008)
Fabien Potencier
 

Similaire à フレームワークxWordPress (20)

symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
 
WordCamp SF 2011: Debugging in WordPress
WordCamp SF 2011: Debugging in WordPressWordCamp SF 2011: Debugging in WordPress
WordCamp SF 2011: Debugging in WordPress
 
Charla - SharePoint en la Nube (17Jul2013)
Charla - SharePoint en la Nube (17Jul2013)Charla - SharePoint en la Nube (17Jul2013)
Charla - SharePoint en la Nube (17Jul2013)
 
Lumberjack 2 - Supercharging WordPress in 2018
Lumberjack 2 - Supercharging WordPress in 2018Lumberjack 2 - Supercharging WordPress in 2018
Lumberjack 2 - Supercharging WordPress in 2018
 
PECL Picks - Extensions to make your life better
PECL Picks - Extensions to make your life betterPECL Picks - Extensions to make your life better
PECL Picks - Extensions to make your life better
 
<Head> Presentation: Plugging Into Wordpress
<Head> Presentation: Plugging Into Wordpress<Head> Presentation: Plugging Into Wordpress
<Head> Presentation: Plugging Into Wordpress
 
Harmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetHarmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and Puppet
 
Developers, Be a Bada$$ with WP-CLI
Developers, Be a Bada$$ with WP-CLIDevelopers, Be a Bada$$ with WP-CLI
Developers, Be a Bada$$ with WP-CLI
 
Vagrant WordCamp Hamilton
Vagrant  WordCamp HamiltonVagrant  WordCamp Hamilton
Vagrant WordCamp Hamilton
 
Pecl Picks
Pecl PicksPecl Picks
Pecl Picks
 
Api Design
Api DesignApi Design
Api Design
 
Lean Php Presentation
Lean Php PresentationLean Php Presentation
Lean Php Presentation
 
Intro to WordPress Plugin Development
Intro to WordPress Plugin DevelopmentIntro to WordPress Plugin Development
Intro to WordPress Plugin Development
 
Wordpress y Docker, de desarrollo a produccion
Wordpress y Docker, de desarrollo a produccionWordpress y Docker, de desarrollo a produccion
Wordpress y Docker, de desarrollo a produccion
 
Wordpress Plugin Development Short Tutorial
Wordpress Plugin Development Short TutorialWordpress Plugin Development Short Tutorial
Wordpress Plugin Development Short Tutorial
 
WCLA12 JavaScript
WCLA12 JavaScriptWCLA12 JavaScript
WCLA12 JavaScript
 
Building a JavaScript Library
Building a JavaScript LibraryBuilding a JavaScript Library
Building a JavaScript Library
 
Wp3 refresh pgh
Wp3 refresh pghWp3 refresh pgh
Wp3 refresh pgh
 
WordPress Performance & Scalability
WordPress Performance & ScalabilityWordPress Performance & Scalability
WordPress Performance & Scalability
 
The symfony platform: Create your very own framework (PHP Quebec 2008)
The symfony platform: Create your very own framework (PHP Quebec 2008)The symfony platform: Create your very own framework (PHP Quebec 2008)
The symfony platform: Create your very own framework (PHP Quebec 2008)
 

Plus de Sotaro Karasawa

Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI SeminarModern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
Sotaro Karasawa
 
第34回PHP勉強会発表資料 SimpleXML
第34回PHP勉強会発表資料 SimpleXML第34回PHP勉強会発表資料 SimpleXML
第34回PHP勉強会発表資料 SimpleXML
Sotaro Karasawa
 

Plus de Sotaro Karasawa (20)

Ethna Updates
Ethna UpdatesEthna Updates
Ethna Updates
 
Openpear Project の紹介
Openpear Project の紹介Openpear Project の紹介
Openpear Project の紹介
 
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI SeminarModern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
 
Internship at PFI
Internship at PFIInternship at PFI
Internship at PFI
 
PHP Source Code Search with PHP
PHP Source Code Search with PHPPHP Source Code Search with PHP
PHP Source Code Search with PHP
 
新しくなったOpenpear by nequal
新しくなったOpenpear by nequal新しくなったOpenpear by nequal
新しくなったOpenpear by nequal
 
第42PHP勉強会Ethna 発表資料
第42PHP勉強会Ethna 発表資料第42PHP勉強会Ethna 発表資料
第42PHP勉強会Ethna 発表資料
 
Introduction of openpear
Introduction of openpearIntroduction of openpear
Introduction of openpear
 
超個人的宣伝と2008年PHPのまとめ
超個人的宣伝と2008年PHPのまとめ超個人的宣伝と2008年PHPのまとめ
超個人的宣伝と2008年PHPのまとめ
 
openpearについて@楽天テクノロジーカンファレンス
openpearについて@楽天テクノロジーカンファレンスopenpearについて@楽天テクノロジーカンファレンス
openpearについて@楽天テクノロジーカンファレンス
 
LT openpear@LL温泉
LT openpear@LL温泉LT openpear@LL温泉
LT openpear@LL温泉
 
PHP超入門@LL温泉
PHP超入門@LL温泉PHP超入門@LL温泉
PHP超入門@LL温泉
 
Mockingbirdの紹介LT@PHP勉強会
Mockingbirdの紹介LT@PHP勉強会Mockingbirdの紹介LT@PHP勉強会
Mockingbirdの紹介LT@PHP勉強会
 
Ethna的ActionとView@設計勉強会
Ethna的ActionとView@設計勉強会Ethna的ActionとView@設計勉強会
Ethna的ActionとView@設計勉強会
 
Mockingbirdイベントハンドリング@拡張機能勉強会
Mockingbirdイベントハンドリング@拡張機能勉強会Mockingbirdイベントハンドリング@拡張機能勉強会
Mockingbirdイベントハンドリング@拡張機能勉強会
 
Mockingbirdサーバサイド@拡張機能勉強会
Mockingbirdサーバサイド@拡張機能勉強会Mockingbirdサーバサイド@拡張機能勉強会
Mockingbirdサーバサイド@拡張機能勉強会
 
Mockingbird@拡張機能勉強会
Mockingbird@拡張機能勉強会Mockingbird@拡張機能勉強会
Mockingbird@拡張機能勉強会
 
Mockingbirdの実装@拡張機能勉強会
Mockingbirdの実装@拡張機能勉強会Mockingbirdの実装@拡張機能勉強会
Mockingbirdの実装@拡張機能勉強会
 
Mockingbirdのタブバーの実装@拡張機能勉強会
Mockingbirdのタブバーの実装@拡張機能勉強会Mockingbirdのタブバーの実装@拡張機能勉強会
Mockingbirdのタブバーの実装@拡張機能勉強会
 
第34回PHP勉強会発表資料 SimpleXML
第34回PHP勉強会発表資料 SimpleXML第34回PHP勉強会発表資料 SimpleXML
第34回PHP勉強会発表資料 SimpleXML
 

Dernier

Dernier (20)

SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
Intelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdfIntelligent Gimbal FINAL PAPER Engineering.pdf
Intelligent Gimbal FINAL PAPER Engineering.pdf
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024What's New in Teams Calling, Meetings and Devices April 2024
What's New in Teams Calling, Meetings and Devices April 2024
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Transforming The New York Times: Empowering Evolution through UX
Transforming The New York Times: Empowering Evolution through UXTransforming The New York Times: Empowering Evolution through UX
Transforming The New York Times: Empowering Evolution through UX
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 

フレームワークxWordPress

  • 1. WordPress (sotarok) http://nequal.jp/ twitter.com/sotarok
  • 2. ( `) • ( `) • Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 3.
  • 4. sotarok • • • • • Ethna • nequal Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 5. CMS • Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 6. Website on – some framework • – – • WordPress Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 7. • PHP 2009 – http://phpcon.php.gr.jp/2009/ – WordPress – Program WordPress Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 8. x WordPress 1 • WordPress • WordPress Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 9. x WordPress 2 • • WordPress Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 11. • • • WP • Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 12. WP • wp-content/themes/default . |-- index.php |-- 404.php |-- ja.mo |-- archive.php |-- ja.po |-- archives.php |-- kubrick.pot |-- comments-popup.php |-- links.php |-- comments.php |-- page.php |-- footer.php |-- rtl.css |-- functions.php |-- screenshot.png |-- header.php |-- search.php |-- image.php |-- sidebar.php |-- images |-- single.php | |-- audio.jpg `-- style.css | |-- ... Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 13. index.php archive.php single.php page.php ... Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 14. header.php footer.php sidebar.php ... Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 15. header, footer • get_header(), get_footer(), header.php, footer.php get_header(); header.php index.php get_footer(); footer.php Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 16. WP • WP CSS header.php [[ WP ]] footer.php Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 17. header.php • • Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 18. header.php <?php // ethna • require_once dirname(__FILE__) . '/../../../../../app/Pcj_Controller.php'; $ethna = new Pcj_Controller(); // $renderer =& $ethna->getRenderer(); $smarty =& $renderer->engine; $smarty->left_delimiter = '{{'; $smarty->right_delimiter = '}}'; $GLOBALS['ethna'] = array( 'ethna' => $ethna, 'renderer' => $renderer, 'smarty' => $smarty, Copyright © nequal, Creative Commons Attribution-Noncommercial ); 2.1 @ WordPress mini seminar.
  • 19. header.php <?php // ethna • require_once dirname(__FILE__) . '/../../../../../app/Pcj_Controller.php'; $ethna = new Pcj_Controller(); // $renderer = $ethna->getRenderer(); $smarty = $renderer->engine; $smarty->left_delimiter = '{{'; $smarty->right_delimiter = '}}'; $GLOBALS['ethna'] = array( 'ethna' => $ethna, 'renderer' => $renderer, 'smarty' => $smarty, Copyright © nequal, Creative Commons Attribution-Noncommercial ); 2.1 @ WordPress mini seminar.
  • 20. header.php <?php // ethna • Ethna require_once dirname(__FILE__) . Smarty '/../../../../../app/Pcj_Controller.php'; $ethna = new Pcj_Controller(); // $renderer = $ethna->getRenderer(); $smarty = $renderer->engine; $smarty->left_delimiter = '{{'; $smarty->right_delimiter = '}}'; $GLOBALS['ethna'] = array( 'ethna' => $ethna, 'renderer' => $renderer, 'smarty' => $smarty, Copyright © nequal, Creative Commons Attribution-Noncommercial ); 2.1 @ WordPress mini seminar.
  • 21. header.php <?php // ethna • require_once dirname(__FILE__) . '/../../../../../app/Pcj_Controller.php'; $ethna = new Pcj_Controller(); footer.php // $renderer = $ethna->getRenderer(); $smarty = $renderer->engine; $smarty->left_delimiter = '{{'; $smarty->right_delimiter = '}}'; $GLOBALS['ethna'] = array( 'ethna' => $ethna, 'renderer' => $renderer, 'smarty' => $smarty, Copyright © nequal, Creative Commons Attribution-Noncommercial ); 2.1 @ WordPress mini seminar.
  • 22. header.php <?php if ( is_singular() ) wp_enqueue_script( 'comment-reply' ); ?> <?php wp_head(); ?> <?php echo $renderer->perform('layout/header.tpl', true); echo $renderer->perform('layout/globalnavi.tpl', true); ?> <div id="main"> Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 23. header.php ... <?php if ( is_singular() ) wp_enqueue_script( 'comment-reply' ); ?> <?php wp_head(); ?> <?php echo $renderer->perform('layout/header.tpl', true); WP echo $renderer->perform('layout/globalnavi.tpl', true); ?> <div id="main"> OK HTML Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 24. header.php ... <?php if ( is_singular() ) wp_enqueue_script( 'comment-reply' ); ?> <?php wp_head(); ?> <?php echo $renderer->perform('layout/header.tpl', true); echo $renderer->perform('layout/globalnavi.tpl', true); ?> <div id="main"> Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 25. • WP – header, footer OK • • – WordPress • Ethna Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 27. WP • – wp-config.php • DB Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 28. • Ethna PHP – Symfony yaml • ETHNA/etc/appid-ini.php • ETHNA/www/blog/wp-config.php Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 29. • ETHNA/www/blog/wp-config.php <?php /** * WordPress * ... */ /** * Ethna ethna ini.php */ require_once dirname(__FILE__) nequal,'/../../etc/pcj- Copyright © . Creative Commons Attribution-Noncommercial ini.php'; 2.1 @ WordPress mini seminar.
  • 30. • ETHNA/etc/pcj-ini.php <?php /* * pcj-ini.php * * WP define * WP wp-config require * */ define('DB_NAME', 'dbname'); define('DB_USER', 'dbusername'); define('DB_PASSWORD', 'dbpassword'); Commons Attribution-Noncommercial Copyright © nequal, Creative define('DB_HOST', 'localhost'); 2.1 @ WordPress mini seminar.
  • 31. • ETHNA/etc/pcj-ini.php ( ) $config = array( // site 'url' => 'http://phpcon.php.gr.jp/', // debug // false 'debug' => false, // db // sample-1: single db 'dsn' => 'mysql://' . DB_USER . ':' . DB_PASSWORD . '@' . DB_HOST . © '/' Creative Commons Attribution-Noncommercial Copyright nequal, . DB_NAME, ... 2.1 @ WordPress mini seminar.
  • 32. WP • DB – wp_comments – wp_links – wp_options – wp_postmeta – wp_posts – wp_terms – wp_term_relationships – wp_term_taxonomy – wp_usermeta – wp_users Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 33. • Ethna ORM <?php class Pcj_DB_WpPosts extends Pcj_DB { public $table_name = 'wp_posts'; } • – ORM Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 34. $entry = $this->db->Wp_Posts->find( D::D_FIRST, array( 'post_status' => 'publish', 'post_type' => 'post', 'order' => 'post_date DESC', ) ); $this->af->setApp('blog_post_data', $entry); Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 35. / • • HTML • • • • Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 36. SQL • – WP – Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 37. -> • • • • Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 38. • WP • WP (^^; • PHP ( • Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.
  • 39. • WordPress – • – 1. • WP • – 2. DB • DB • Copyright © nequal, Creative Commons Attribution-Noncommercial 2.1 @ WordPress mini seminar.