SlideShare a Scribd company logo
1 of 40
Download to read offline
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?

More Related Content

Similar to Optimize WordPress with Ethna and Smarty

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
 
WordCamp SF 2011: Debugging in WordPress
WordCamp SF 2011: Debugging in WordPressWordCamp SF 2011: Debugging in WordPress
WordCamp SF 2011: Debugging in WordPressandrewnacin
 
Charla - SharePoint en la Nube (17Jul2013)
Charla - SharePoint en la Nube (17Jul2013)Charla - SharePoint en la Nube (17Jul2013)
Charla - SharePoint en la Nube (17Jul2013)Juan Andrés Valenzuela
 
Lumberjack 2 - Supercharging WordPress in 2018
Lumberjack 2 - Supercharging WordPress in 2018Lumberjack 2 - Supercharging WordPress in 2018
Lumberjack 2 - Supercharging WordPress in 2018Joe Lambert
 
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 betterZendCon
 
<Head> Presentation: Plugging Into Wordpress
<Head> Presentation: Plugging Into Wordpress<Head> Presentation: Plugging Into Wordpress
<Head> Presentation: Plugging Into WordpressMatt Harris
 
Harmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetHarmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetAchieve Internet
 
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-CLIWP Engine
 
Vagrant WordCamp Hamilton
Vagrant  WordCamp HamiltonVagrant  WordCamp Hamilton
Vagrant WordCamp HamiltonPaul Bearne
 
Lean Php Presentation
Lean Php PresentationLean Php Presentation
Lean Php PresentationAlan Pinstein
 
Intro to WordPress Plugin Development
Intro to WordPress Plugin DevelopmentIntro to WordPress Plugin Development
Intro to WordPress Plugin DevelopmentBrad Williams
 
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 produccionSysdig
 
Wordpress Plugin Development Short Tutorial
Wordpress Plugin Development Short TutorialWordpress Plugin Development Short Tutorial
Wordpress Plugin Development Short TutorialChristos Zigkolis
 
Building a JavaScript Library
Building a JavaScript LibraryBuilding a JavaScript Library
Building a JavaScript Libraryjeresig
 
Wp3 refresh pgh
Wp3 refresh pghWp3 refresh pgh
Wp3 refresh pghMrDirby
 
WordPress Performance & Scalability
WordPress Performance & ScalabilityWordPress Performance & Scalability
WordPress Performance & ScalabilityJoseph 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
 

Similar to Optimize WordPress with Ethna and Smarty (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)
 

More from Sotaro Karasawa

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

More from 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
 

Recently uploaded

Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 

Recently uploaded (20)

Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 

Optimize WordPress with Ethna and Smarty

  • 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.