SlideShare uma empresa Scribd logo
1 de 99
Baixar para ler offline
an easy start guide for
Plugin Development
WordPress Meet-up!
on 2014/05/29!
in Bangkok, Thailand!
by Shinichi Nishikawa
about Me
❖ ผมชื่อชิน (Shinichi Nishikawa)!
❖ อยู่ที่กรุงเทพฯปีครึ่ง

Lived in Bangkok for half a year!
❖ สร้าง themes และ plugin ให้ลูกค้า

Building themes and plugins for customers!
❖ ผมชอบเขียนบล็อก เขียนหนังสือเกี่ยวกับ WordPress และจัด
WordPress Events ที่ญี่ปุ่นด้วย.

I write blogs with WP, I write books of WP, I ran WP events
Challenge
❖ ผมจะสอนวิธีทำpluginอย่างง่าย

I will try to explain how to make plugins as easy as
possible.!
❖ หากคุณมีคำถาม คุณถามได้ทุกเวลา

Don’t hesitate to ask questions any time!!
❖ คุณสามารถดาวน์โหลด presentation และ codesนี้ได้

Presentation and codes online will be uploaded.
Menu
❖ plugin ขั้นพื้นฐาน

Plugin basic!
❖ WordPress ทำงานอย่างไร

How WordPress works!
❖ plugin ทำงานกับ WordPress อย่างไร

How plugins work together with WordPress!
❖ ผมมีตัวอย่างpluginง่ายๆ3แบบ ที่จะทำให้คุณเข้าใจ

You will see 3 example plugins and understand them
After session
❖ คุณสามารถจะทำpluginอย่างง่ายได้

You can make a simple plugin!
❖ คุณจะรู้ว่าpluginทำหน้าที่อะไร

You will know what plugins do!
❖ คุณจะชอบWordPressมากขึ้น

You will be more interested in WordPress core
Enquete
❖ ใครทำWordPress Themeได้บ้าง

Anyone who can make WP Theme?!
❖ ใครทำPluginได้บ้าง

Anyone who can make WP Plugin?!
❖ ใครรู้จักphpบ้าง

Who knows php?
plugin คือ อะไร

What is a plugin?
What is a plugin?
❖ Tool to extend WordPress functionality!
❖ Without changing Core codes!
❖ Over 30,000 plugins at WordPress.org/plugins/
ต้องมีอะไรบ้าง
What do we need?
What do we need?
a WordPress
Get a clean install of a WordPress.
What do we need?
php, html, css, js
Plugins are written in php.!
!
Many plugins have html & css.!
!
Some plugins have Javascript.
php / basics
❖ variables!
✓ $a!
✓ $hubba!
✓ $posts
❖ functions!
function my_func() {

do_something();

}
❖ others!
✓ if!
✓ foreach!
✓ array
php / template tags
❖ the_title()!
❖ the_permalink()!
❖ the_date()!
❖ the_content()
❖ wp_title()!
❖ body_class()!
❖ get_post_thumbnail_id()!
❖ wp_nav_menu()
basic
wp-content/plugins/easy-plugin.php
WPจะรู้ว่านี่เป็นplugin.
WP knows it’s a plugin.
This comment is called plugin
header.
wp-admin/plugins.php
WP shows the plugin “Plugin Name: ” comes here.
More Plugin Header
<?php!
/*!
Plugin Name: Plugin ง่าย มาก!!
Plugin URI: http://nskw-style.com/my-plugin!
Description: plugin แรกของผม!
Version: 0.1!
Author: Shinichi Nishikawa!
Author URI: http://nskw-style.com!
License: GPLv2 or later!
Text Domain: easiest!
*/
wp-admin/plugins.php
WP shows the plugin
Those are required if you
want your plugin to be in
wordpress.org site.
ตัวอย่าง
Examples
ผมทำตัวอย่าง plugin 3 แบบ!
I made 3 plugins for tonight.
คุณจะเข้าใจใน 30 นาที!
!
It may seem difficult but!
you’ll understand in 30 minutes.
1 ใจเย็นๆ
<?php!
/*!
Plugin Name: ใจเย็นๆ!
Description: Tell people to take it easy.!
*/
1 ใจเย็นๆ
2 สุภาพ
<?php!
/*!
Plugin Name: สุภาพ!
Description: This plugin make all content polite.!
*/
2 สุภาพ
3 สบายใจ login
<?php!
/*!
Plugin Name: สบายใจ login!
Description: This plugin make login screen happy.!
*/
plugin.com/wp-login.php
3 สบายใจ login
Plugins have codes like,!
!
add_action( ‘location’, ‘function’ );!
or!
add_filter( ‘location’, ‘function’ );!
Let’s see how 3 plugins work.
I will explain the concept of plugin!
and!
we come back to these examples.
Concept of Plugin
We need to know how!
WordPress works.
WordPress Process
WordPress Process
WordPress process
WordPress Process
request: example.com/category/food
User sees the page.
WordPress process
WordPress Process
request: example.com/category/food
User sees the page.
Get DB info from
wp-config.php
connect to DB
WordPress Process
request: example.com/category/food
User sees the page.
Get DB info from
wp-config.php
connect to DB
load core functions
load plugins
load functions.php
WordPress Process
request: example.com/category/food
User sees the page.
Get DB info from
wp-config.php
connect to DB
load core functions
load plugins
load functions.php
query from URL
get post(s)
data from DB
WordPress Process
request: example.com/category/food
User sees the page.
Get DB info from
wp-config.php
connect to DB
load core functions
load plugins
load functions.php
template file
decided.
(category.php)
query from URL
get post(s)
data from DB
category.php!
header.php
loop
sidebar.php
footer.php
WordPress Process
request: example.com/category/food
User sees the page.
WordPress process
WordPress Process
request: example.com/wp-admin/post-new.php
User sees the page.
WordPress process
WordPress Processes can be …
!
✓ displaying home page
✓ displaying admin page
✓ displaying login page
✓ or any other things WordPress does
WordPress Process
request: example.com/wp-login.php
User sees the page.
WordPress process
WordPress Processes can be …
!
✓ displaying home page
✓ displaying admin page
✓ displaying login page
✓ or any other things WordPress does
That’s how WordPress works.
Now, the question is!
!
“how can plugins work!
with the process of WordPress?”
I need to talk about “Hooks”,!
the Secret Key of WordPress.
Hooks
WordPress process
Hooks
WordPress process
Hooks?
❖ Plugins access to hooks to put extra functions
to WordPress!
❖ There are 2 types of hooks.!
✓ Filter Hooks!
✓ Action Hooks
Hooks
Filter Hooks
WordPress process
Action Hooks
Actions!
&!
Filters
action
❖ Action is to do something.!
✓ to echo something!
✓ to save something!
✓ to redirect somewhere
filter
❖ Filter is to change something!
✓ change original text to your text!
✓ change original html to your html!
✓ change original php values to your values.
How hooks look like
apply_filters( ‘location1’, $value );
do_action( ‘location2’ );
filter hook
action hook
How hooks look like
❖ apply_filters( ‘location_name’, $value );!
❖ do_action( ‘location_name’ );
case: in Templates
apply_filters( ‘the_content’, $value );
do_action( ‘wp_footer’ );
ex ) example.com/about
filter hook
action hook
case: login screen
apply_filters( ‘login_message’, $value );
do_action( ‘login_footer’ );
ex ) example.com/wp-login.php
filter hook
action hook
case: admin pages
apply_filters( ‘admin_body_class’, $value );
do_action( ‘admin_head’ );
ex ) example.com/wp-admin/
filter hook
action hook
There are many hooks
name1 name2 name3 name5 name6 name7name4
there are
1,000+ filter hooks & 500+ action hooks
in WordPress
How to hook
How to register
apply_filters( ‘location1’, $value ); do_action( ‘location2’ );
Hooking Filters & Actions
❖ add_filter( ‘location’, ‘your_func_name’ );!
❖ add_action( ‘location’, ‘your_func_name’ );
Hooking Filters & Actions
❖ add_filter( ‘location’, ‘your_func_name’ );

function your_func_name( $default ) {



// do something



return $new;



}
Hooking Filters & Actions
❖ add_action( ‘location’, ‘your_func_name’ );

function your_func_name(){



// do something



}
Register filter
add_filter( ‘location1’, ‘func1’ );
function func1($value){
// make a filter here
return $value
}
apply_filters( ‘location1’, $value ); do_action( ‘location2’ );
Register action
add_action( ‘location2’, ‘func2’ );
function func2(){
// do something
}
apply_filters( ‘location1’, $value ); do_action( ‘location2’ );
Plugin Hook Concept
add_filter( ‘location1’, ‘func1’ );
function func1($value){
// make a filter here
return $value
}
add_action( ‘location2’, ‘func2’ );
function func2(){
// do something
}
apply_filters( ‘location1’, $value ); do_action( ‘location2’ );
Plugin Hook Concept
Plugin is a set of add_action() & add_filter()
add_filter( ‘location1’, ‘func1’ );
function func1($value){
// make a filter here
return $value
}
add_action( ‘location2’, ‘func2’ );
function func2(){
// do something
}
apply_filters( ‘location1’, $value ); do_action( ‘location2’ );
Plugin Hook Concept
Large plugins have many functions in them.
apply_filters( ‘location1’, $value ); do_action( ‘location2’ );
we go back to example plugins
ใจเย็นๆ
ใจเย็นๆ
request: example.com/category/food
User sees the page.
Get DB info from
wp-config.php
connect to DB
load core functions
load plugins
load functions.php
template file
decided.
(category.php)
query from URL
get post(s)
data from DB
category.php!
header.php
loop
sidebar.php
footer.php
wp_head();
wp_footer();
สุภาพ
สุภาพ
สุภาพ
request: example.com/category/food
User sees the page.
Get DB info from
wp-config.php
connect to DB
load core functions
load plugins
load functions.php
template file
decided.
(category.php)
query from URL
get post(s)
data from DB
category.php!
header.php
loop
sidebar.php
footer.php
apply_filters(
‘the_content’,
$content
);
สุภาพ
a little advanced
This is also possible.
สบายใจ login
สบายใจ login
สบายใจ login
request: example.com/wp-login.php
User sees the page.
check cookies
see ssl
condition
check errors
show logo
& message<html>
</head>
show <form>
do_action(‘login_footer’);
!
in plugin: echo <video>
display login footer
do_action(‘login_head’);
!
in plugin: echo <style>
สบายใจ login
More things you can do with
plugins.
add favicon to admin pages
change excerpt “[…]”
Hide admin notice of upgrades
shortcode
Resources
Resources
❖ Codex!
✓ http://codex.wordpress.org/Writing_a_Plugin!
✓ http://codex.wordpress.org/Plugin_API!
✓ http://codex.wordpress.org/Plugin_Resources!
❖ wordpress.org!
✓ http://developer.wordpress.org/reference/
Next meet-up!
!
“How to build theme properly”!
and!
“How to sell it on WordPress.com”
แนะนำหัวข้อที่น่าสนใจได้นะครับ!
Any suggestions for coming meet-up?

Mais conteúdo relacionado

Mais procurados

Plugin development wpmeetup010
Plugin development wpmeetup010Plugin development wpmeetup010
Plugin development wpmeetup010Barry Kooij
 
Outside-in Development with Cucumber and Rspec
Outside-in Development with Cucumber and RspecOutside-in Development with Cucumber and Rspec
Outside-in Development with Cucumber and RspecJoseph Wilk
 
greach 2014 marco vermeulen bdd using cucumber jvm and groovy
greach 2014 marco vermeulen bdd using cucumber jvm and groovygreach 2014 marco vermeulen bdd using cucumber jvm and groovy
greach 2014 marco vermeulen bdd using cucumber jvm and groovyJessie Evangelista
 
Continuous Deployment at Etsy
Continuous Deployment at EtsyContinuous Deployment at Etsy
Continuous Deployment at EtsyPremshree Pillai
 
Ako na vlastne WP temy
Ako na vlastne WP temyAko na vlastne WP temy
Ako na vlastne WP temyJuraj Kiss
 
WordPress Theme Development for Designers
WordPress Theme Development for DesignersWordPress Theme Development for Designers
WordPress Theme Development for Designerselliotjaystocks
 
Workshop On WP-CLI
Workshop On WP-CLIWorkshop On WP-CLI
Workshop On WP-CLIAjit Bohra
 
How To Write a WordPress Plugin
How To Write a WordPress PluginHow To Write a WordPress Plugin
How To Write a WordPress PluginAndy Stratton
 
WordPress Realtime - WordCamp São Paulo 2015
WordPress Realtime - WordCamp São Paulo 2015WordPress Realtime - WordCamp São Paulo 2015
WordPress Realtime - WordCamp São Paulo 2015Fernando Daciuk
 
Getting big without getting fat, in perl
Getting big without getting fat, in perlGetting big without getting fat, in perl
Getting big without getting fat, in perlDean Hamstead
 
Grand Rapids PHP Meetup: Behavioral Driven Development with Behat
Grand Rapids PHP Meetup: Behavioral Driven Development with BehatGrand Rapids PHP Meetup: Behavioral Driven Development with Behat
Grand Rapids PHP Meetup: Behavioral Driven Development with BehatRyan Weaver
 
WordPress Structure and Best Practices
WordPress Structure and Best PracticesWordPress Structure and Best Practices
WordPress Structure and Best Practicesmarkparolisi
 
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love it
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love itDrupal 8: Huge wins, a Bigger Community, and why you (and I) will Love it
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love itRyan Weaver
 
jQuery For Developers Stack Overflow Dev Days Toronto
jQuery For Developers Stack Overflow Dev Days TorontojQuery For Developers Stack Overflow Dev Days Toronto
jQuery For Developers Stack Overflow Dev Days TorontoRalph Whitbeck
 
Continuous Deployment at Scale, PHPConfAsia 2016
Continuous Deployment at Scale, PHPConfAsia 2016Continuous Deployment at Scale, PHPConfAsia 2016
Continuous Deployment at Scale, PHPConfAsia 2016Premshree Pillai
 
Week 9 - Introduction to Child Themes
Week 9  - Introduction to Child ThemesWeek 9  - Introduction to Child Themes
Week 9 - Introduction to Child Themeshenri_makembe
 
Introduction to VueJS & The WordPress REST API
Introduction to VueJS & The WordPress REST APIIntroduction to VueJS & The WordPress REST API
Introduction to VueJS & The WordPress REST APICaldera Labs
 
JD17NL Joomla! Overrides and alternate layouts
JD17NL Joomla! Overrides and alternate layoutsJD17NL Joomla! Overrides and alternate layouts
JD17NL Joomla! Overrides and alternate layoutsHans Kuijpers
 

Mais procurados (20)

Plugin development wpmeetup010
Plugin development wpmeetup010Plugin development wpmeetup010
Plugin development wpmeetup010
 
Outside-in Development with Cucumber and Rspec
Outside-in Development with Cucumber and RspecOutside-in Development with Cucumber and Rspec
Outside-in Development with Cucumber and Rspec
 
greach 2014 marco vermeulen bdd using cucumber jvm and groovy
greach 2014 marco vermeulen bdd using cucumber jvm and groovygreach 2014 marco vermeulen bdd using cucumber jvm and groovy
greach 2014 marco vermeulen bdd using cucumber jvm and groovy
 
Continuous Deployment at Etsy
Continuous Deployment at EtsyContinuous Deployment at Etsy
Continuous Deployment at Etsy
 
Ako na vlastne WP temy
Ako na vlastne WP temyAko na vlastne WP temy
Ako na vlastne WP temy
 
WordPress Theme Development for Designers
WordPress Theme Development for DesignersWordPress Theme Development for Designers
WordPress Theme Development for Designers
 
Workshop On WP-CLI
Workshop On WP-CLIWorkshop On WP-CLI
Workshop On WP-CLI
 
How To Write a WordPress Plugin
How To Write a WordPress PluginHow To Write a WordPress Plugin
How To Write a WordPress Plugin
 
WordPress Realtime - WordCamp São Paulo 2015
WordPress Realtime - WordCamp São Paulo 2015WordPress Realtime - WordCamp São Paulo 2015
WordPress Realtime - WordCamp São Paulo 2015
 
Getting big without getting fat, in perl
Getting big without getting fat, in perlGetting big without getting fat, in perl
Getting big without getting fat, in perl
 
Rebrand WordPress Admin
Rebrand WordPress AdminRebrand WordPress Admin
Rebrand WordPress Admin
 
Grand Rapids PHP Meetup: Behavioral Driven Development with Behat
Grand Rapids PHP Meetup: Behavioral Driven Development with BehatGrand Rapids PHP Meetup: Behavioral Driven Development with Behat
Grand Rapids PHP Meetup: Behavioral Driven Development with Behat
 
WordPress Structure and Best Practices
WordPress Structure and Best PracticesWordPress Structure and Best Practices
WordPress Structure and Best Practices
 
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love it
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love itDrupal 8: Huge wins, a Bigger Community, and why you (and I) will Love it
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love it
 
jQuery For Developers Stack Overflow Dev Days Toronto
jQuery For Developers Stack Overflow Dev Days TorontojQuery For Developers Stack Overflow Dev Days Toronto
jQuery For Developers Stack Overflow Dev Days Toronto
 
Continuous Deployment at Scale, PHPConfAsia 2016
Continuous Deployment at Scale, PHPConfAsia 2016Continuous Deployment at Scale, PHPConfAsia 2016
Continuous Deployment at Scale, PHPConfAsia 2016
 
Week 9 - Introduction to Child Themes
Week 9  - Introduction to Child ThemesWeek 9  - Introduction to Child Themes
Week 9 - Introduction to Child Themes
 
Jquery tutorial
Jquery tutorialJquery tutorial
Jquery tutorial
 
Introduction to VueJS & The WordPress REST API
Introduction to VueJS & The WordPress REST APIIntroduction to VueJS & The WordPress REST API
Introduction to VueJS & The WordPress REST API
 
JD17NL Joomla! Overrides and alternate layouts
JD17NL Joomla! Overrides and alternate layoutsJD17NL Joomla! Overrides and alternate layouts
JD17NL Joomla! Overrides and alternate layouts
 

Destaque

Building GPE: What We Learned
Building GPE: What We LearnedBuilding GPE: What We Learned
Building GPE: What We Learnedrajeevdayal
 
Best Practices in Plugin Development (WordCamp Seattle)
Best Practices in Plugin Development (WordCamp Seattle)Best Practices in Plugin Development (WordCamp Seattle)
Best Practices in Plugin Development (WordCamp Seattle)andrewnacin
 
Building an Eclipse plugin to recommend changes to developers
Building an Eclipse plugin to recommend changes to developersBuilding an Eclipse plugin to recommend changes to developers
Building an Eclipse plugin to recommend changes to developerskim.mens
 
jQuery Plugin Creation
jQuery Plugin CreationjQuery Plugin Creation
jQuery Plugin Creationbenalman
 
The Open-source Eclipse Plugin for Force.com Development, Summer ‘14
The Open-source Eclipse Plugin for Force.com Development, Summer ‘14The Open-source Eclipse Plugin for Force.com Development, Summer ‘14
The Open-source Eclipse Plugin for Force.com Development, Summer ‘14Salesforce Developers
 
Plugin jQuery, Design Patterns
Plugin jQuery, Design PatternsPlugin jQuery, Design Patterns
Plugin jQuery, Design PatternsRobert Casanova
 
Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview Lars Vogel
 
A Simple Plugin Architecture for Wicket
A Simple Plugin Architecture for WicketA Simple Plugin Architecture for Wicket
A Simple Plugin Architecture for Wicketnielsvk
 
Configuration as Code: The Job DSL Plugin
Configuration as Code: The Job DSL PluginConfiguration as Code: The Job DSL Plugin
Configuration as Code: The Job DSL PluginDaniel Spilker
 
Creating a Plug-In Architecture
Creating a Plug-In ArchitectureCreating a Plug-In Architecture
Creating a Plug-In Architectureondrejbalas
 

Destaque (10)

Building GPE: What We Learned
Building GPE: What We LearnedBuilding GPE: What We Learned
Building GPE: What We Learned
 
Best Practices in Plugin Development (WordCamp Seattle)
Best Practices in Plugin Development (WordCamp Seattle)Best Practices in Plugin Development (WordCamp Seattle)
Best Practices in Plugin Development (WordCamp Seattle)
 
Building an Eclipse plugin to recommend changes to developers
Building an Eclipse plugin to recommend changes to developersBuilding an Eclipse plugin to recommend changes to developers
Building an Eclipse plugin to recommend changes to developers
 
jQuery Plugin Creation
jQuery Plugin CreationjQuery Plugin Creation
jQuery Plugin Creation
 
The Open-source Eclipse Plugin for Force.com Development, Summer ‘14
The Open-source Eclipse Plugin for Force.com Development, Summer ‘14The Open-source Eclipse Plugin for Force.com Development, Summer ‘14
The Open-source Eclipse Plugin for Force.com Development, Summer ‘14
 
Plugin jQuery, Design Patterns
Plugin jQuery, Design PatternsPlugin jQuery, Design Patterns
Plugin jQuery, Design Patterns
 
Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview
 
A Simple Plugin Architecture for Wicket
A Simple Plugin Architecture for WicketA Simple Plugin Architecture for Wicket
A Simple Plugin Architecture for Wicket
 
Configuration as Code: The Job DSL Plugin
Configuration as Code: The Job DSL PluginConfiguration as Code: The Job DSL Plugin
Configuration as Code: The Job DSL Plugin
 
Creating a Plug-In Architecture
Creating a Plug-In ArchitectureCreating a Plug-In Architecture
Creating a Plug-In Architecture
 

Semelhante a An easy guide to Plugin Development

Plugin development demystified 2017
Plugin development demystified 2017Plugin development demystified 2017
Plugin development demystified 2017ylefebvre
 
Javascript and jQuery PennApps Tech Talk, Fall 2014
Javascript and jQuery PennApps Tech Talk, Fall 2014Javascript and jQuery PennApps Tech Talk, Fall 2014
Javascript and jQuery PennApps Tech Talk, Fall 2014Kathy Zhou
 
Intro to WordPress Plugins
Intro to WordPress PluginsIntro to WordPress Plugins
Intro to WordPress Pluginszamoose
 
How to create your own WordPress plugin
How to create your own WordPress pluginHow to create your own WordPress plugin
How to create your own WordPress pluginJohn Tighe
 
Plugging into plugins
Plugging into pluginsPlugging into plugins
Plugging into pluginsJosh Harrison
 
Creating Your First WordPress Plugin
Creating Your First WordPress PluginCreating Your First WordPress Plugin
Creating Your First WordPress PluginBrad Williams
 
CUCUMBER - Making BDD Fun
CUCUMBER - Making BDD FunCUCUMBER - Making BDD Fun
CUCUMBER - Making BDD FunSQABD
 
Collective.amberjack ploneconf2010
Collective.amberjack ploneconf2010Collective.amberjack ploneconf2010
Collective.amberjack ploneconf2010Massimo Azzolini
 
Creating Extensible Plugins for WordPress
Creating Extensible Plugins for WordPressCreating Extensible Plugins for WordPress
Creating Extensible Plugins for WordPressHristo Chakarov
 
Plugin Development Practices
Plugin Development PracticesPlugin Development Practices
Plugin Development Practicesdanpastori
 
Wordcamp 2010 presentation
Wordcamp 2010 presentationWordcamp 2010 presentation
Wordcamp 2010 presentationJonny Allbut
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Michael Lihs
 
Write your first WordPress plugin
Write your first WordPress pluginWrite your first WordPress plugin
Write your first WordPress pluginAnthony Montalbano
 
Power of mu plugins
Power of mu pluginsPower of mu plugins
Power of mu pluginsMikel King
 
Twig for Drupal 8 and PHP | Presented at OC Drupal
Twig for Drupal 8 and PHP | Presented at OC DrupalTwig for Drupal 8 and PHP | Presented at OC Drupal
Twig for Drupal 8 and PHP | Presented at OC Drupalwebbywe
 
Theming Wordpress with Adobe
Theming Wordpress with AdobeTheming Wordpress with Adobe
Theming Wordpress with AdobeGrace Solivan
 
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)Mike Schinkel
 

Semelhante a An easy guide to Plugin Development (20)

Using PHP
Using PHPUsing PHP
Using PHP
 
Plugin development demystified 2017
Plugin development demystified 2017Plugin development demystified 2017
Plugin development demystified 2017
 
Javascript and jQuery PennApps Tech Talk, Fall 2014
Javascript and jQuery PennApps Tech Talk, Fall 2014Javascript and jQuery PennApps Tech Talk, Fall 2014
Javascript and jQuery PennApps Tech Talk, Fall 2014
 
Intro to WordPress Plugins
Intro to WordPress PluginsIntro to WordPress Plugins
Intro to WordPress Plugins
 
How to create your own WordPress plugin
How to create your own WordPress pluginHow to create your own WordPress plugin
How to create your own WordPress plugin
 
Mojolicious
MojoliciousMojolicious
Mojolicious
 
Plugging into plugins
Plugging into pluginsPlugging into plugins
Plugging into plugins
 
Creating Your First WordPress Plugin
Creating Your First WordPress PluginCreating Your First WordPress Plugin
Creating Your First WordPress Plugin
 
CUCUMBER - Making BDD Fun
CUCUMBER - Making BDD FunCUCUMBER - Making BDD Fun
CUCUMBER - Making BDD Fun
 
Django Girls Tutorial
Django Girls TutorialDjango Girls Tutorial
Django Girls Tutorial
 
Collective.amberjack ploneconf2010
Collective.amberjack ploneconf2010Collective.amberjack ploneconf2010
Collective.amberjack ploneconf2010
 
Creating Extensible Plugins for WordPress
Creating Extensible Plugins for WordPressCreating Extensible Plugins for WordPress
Creating Extensible Plugins for WordPress
 
Plugin Development Practices
Plugin Development PracticesPlugin Development Practices
Plugin Development Practices
 
Wordcamp 2010 presentation
Wordcamp 2010 presentationWordcamp 2010 presentation
Wordcamp 2010 presentation
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
 
Write your first WordPress plugin
Write your first WordPress pluginWrite your first WordPress plugin
Write your first WordPress plugin
 
Power of mu plugins
Power of mu pluginsPower of mu plugins
Power of mu plugins
 
Twig for Drupal 8 and PHP | Presented at OC Drupal
Twig for Drupal 8 and PHP | Presented at OC DrupalTwig for Drupal 8 and PHP | Presented at OC Drupal
Twig for Drupal 8 and PHP | Presented at OC Drupal
 
Theming Wordpress with Adobe
Theming Wordpress with AdobeTheming Wordpress with Adobe
Theming Wordpress with Adobe
 
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)
 

Mais de Shinichi Nishikawa

GPL: WordPress 4つの自由と ビジネスモデル / WordCamp Tokyo 2015 講演スライド
GPL: WordPress 4つの自由と ビジネスモデル / WordCamp Tokyo 2015 講演スライドGPL: WordPress 4つの自由と ビジネスモデル / WordCamp Tokyo 2015 講演スライド
GPL: WordPress 4つの自由と ビジネスモデル / WordCamp Tokyo 2015 講演スライドShinichi Nishikawa
 
Learning from theme review requirements
Learning from theme review requirementsLearning from theme review requirements
Learning from theme review requirementsShinichi Nishikawa
 
WordPress community and events in Japan. presented at #wp10 meet up in Bangko...
WordPress community and events in Japan. presented at #wp10 meet up in Bangko...WordPress community and events in Japan. presented at #wp10 meet up in Bangko...
WordPress community and events in Japan. presented at #wp10 meet up in Bangko...Shinichi Nishikawa
 
WordCamp Seoul: WordPress Based web services in Japan / WordCamp 서울 : 일본에서 워드...
WordCamp Seoul: WordPress Based web services in Japan / WordCamp 서울 : 일본에서 워드...WordCamp Seoul: WordPress Based web services in Japan / WordCamp 서울 : 일본에서 워드...
WordCamp Seoul: WordPress Based web services in Japan / WordCamp 서울 : 일본에서 워드...Shinichi Nishikawa
 
2013年3月16日のWordBench大阪
2013年3月16日のWordBench大阪2013年3月16日のWordBench大阪
2013年3月16日のWordBench大阪Shinichi Nishikawa
 
アプリケーションプラットフォームとしてのWordPressの序論。ころぐとBookPressを事例に!WordBench福岡の資料!20130323
アプリケーションプラットフォームとしてのWordPressの序論。ころぐとBookPressを事例に!WordBench福岡の資料!20130323アプリケーションプラットフォームとしてのWordPressの序論。ころぐとBookPressを事例に!WordBench福岡の資料!20130323
アプリケーションプラットフォームとしてのWordPressの序論。ころぐとBookPressを事例に!WordBench福岡の資料!20130323Shinichi Nishikawa
 
電子出版プラットフォーム『BookPress』にみるAWSと電子出版の素敵な関係
電子出版プラットフォーム『BookPress』にみるAWSと電子出版の素敵な関係電子出版プラットフォーム『BookPress』にみるAWSと電子出版の素敵な関係
電子出版プラットフォーム『BookPress』にみるAWSと電子出版の素敵な関係Shinichi Nishikawa
 
子育てとブログを考える「ころぐ講演」
子育てとブログを考える「ころぐ講演」子育てとブログを考える「ころぐ講演」
子育てとブログを考える「ころぐ講演」Shinichi Nishikawa
 
WordPressでウェブサービスを作ろう! #wbNagoya
WordPressでウェブサービスを作ろう! #wbNagoyaWordPressでウェブサービスを作ろう! #wbNagoya
WordPressでウェブサービスを作ろう! #wbNagoyaShinichi Nishikawa
 
CodaでClipを使ってWordPress開発を早くするススメ。
 CodaでClipを使ってWordPress開発を早くするススメ。 CodaでClipを使ってWordPress開発を早くするススメ。
CodaでClipを使ってWordPress開発を早くするススメ。Shinichi Nishikawa
 
第三章ナビゲーション &lt; 第4回デザイニング・インターフェース勉強会
第三章ナビゲーション &lt; 第4回デザイニング・インターフェース勉強会第三章ナビゲーション &lt; 第4回デザイニング・インターフェース勉強会
第三章ナビゲーション &lt; 第4回デザイニング・インターフェース勉強会Shinichi Nishikawa
 
WordCampTokyo2012 開催のお知らせとスタッフ募集
WordCampTokyo2012 開催のお知らせとスタッフ募集WordCampTokyo2012 開催のお知らせとスタッフ募集
WordCampTokyo2012 開催のお知らせとスタッフ募集Shinichi Nishikawa
 
WordPressマルチサイト機能を使ってブログポータルを作ってみよう!
WordPressマルチサイト機能を使ってブログポータルを作ってみよう!WordPressマルチサイト機能を使ってブログポータルを作ってみよう!
WordPressマルチサイト機能を使ってブログポータルを作ってみよう!Shinichi Nishikawa
 
4時間まったりWordPressテーマ作成講座
4時間まったりWordPressテーマ作成講座4時間まったりWordPressテーマ作成講座
4時間まったりWordPressテーマ作成講座Shinichi Nishikawa
 
WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?Shinichi Nishikawa
 
WordPressの管理画面を徹底カスタマイズ!
WordPressの管理画面を徹底カスタマイズ!WordPressの管理画面を徹底カスタマイズ!
WordPressの管理画面を徹底カスタマイズ!Shinichi Nishikawa
 

Mais de Shinichi Nishikawa (20)

WordPress Community in Japan
WordPress Community in JapanWordPress Community in Japan
WordPress Community in Japan
 
GPL: WordPress 4つの自由と ビジネスモデル / WordCamp Tokyo 2015 講演スライド
GPL: WordPress 4つの自由と ビジネスモデル / WordCamp Tokyo 2015 講演スライドGPL: WordPress 4つの自由と ビジネスモデル / WordCamp Tokyo 2015 講演スライド
GPL: WordPress 4つの自由と ビジネスモデル / WordCamp Tokyo 2015 講演スライド
 
Learning from theme review requirements
Learning from theme review requirementsLearning from theme review requirements
Learning from theme review requirements
 
Child Theme
Child ThemeChild Theme
Child Theme
 
Wordpress Community in Japan
Wordpress Community in JapanWordpress Community in Japan
Wordpress Community in Japan
 
WordPress community and events in Japan. presented at #wp10 meet up in Bangko...
WordPress community and events in Japan. presented at #wp10 meet up in Bangko...WordPress community and events in Japan. presented at #wp10 meet up in Bangko...
WordPress community and events in Japan. presented at #wp10 meet up in Bangko...
 
WordCamp Seoul: WordPress Based web services in Japan / WordCamp 서울 : 일본에서 워드...
WordCamp Seoul: WordPress Based web services in Japan / WordCamp 서울 : 일본에서 워드...WordCamp Seoul: WordPress Based web services in Japan / WordCamp 서울 : 일본에서 워드...
WordCamp Seoul: WordPress Based web services in Japan / WordCamp 서울 : 일본에서 워드...
 
2013年3月16日のWordBench大阪
2013年3月16日のWordBench大阪2013年3月16日のWordBench大阪
2013年3月16日のWordBench大阪
 
アプリケーションプラットフォームとしてのWordPressの序論。ころぐとBookPressを事例に!WordBench福岡の資料!20130323
アプリケーションプラットフォームとしてのWordPressの序論。ころぐとBookPressを事例に!WordBench福岡の資料!20130323アプリケーションプラットフォームとしてのWordPressの序論。ころぐとBookPressを事例に!WordBench福岡の資料!20130323
アプリケーションプラットフォームとしてのWordPressの序論。ころぐとBookPressを事例に!WordBench福岡の資料!20130323
 
電子出版プラットフォーム『BookPress』にみるAWSと電子出版の素敵な関係
電子出版プラットフォーム『BookPress』にみるAWSと電子出版の素敵な関係電子出版プラットフォーム『BookPress』にみるAWSと電子出版の素敵な関係
電子出版プラットフォーム『BookPress』にみるAWSと電子出版の素敵な関係
 
子育てとブログを考える「ころぐ講演」
子育てとブログを考える「ころぐ講演」子育てとブログを考える「ころぐ講演」
子育てとブログを考える「ころぐ講演」
 
WordPressでウェブサービスを作ろう! #wbNagoya
WordPressでウェブサービスを作ろう! #wbNagoyaWordPressでウェブサービスを作ろう! #wbNagoya
WordPressでウェブサービスを作ろう! #wbNagoya
 
WordCamp Tokyo 2012 Concept
WordCamp Tokyo 2012 ConceptWordCamp Tokyo 2012 Concept
WordCamp Tokyo 2012 Concept
 
CodaでClipを使ってWordPress開発を早くするススメ。
 CodaでClipを使ってWordPress開発を早くするススメ。 CodaでClipを使ってWordPress開発を早くするススメ。
CodaでClipを使ってWordPress開発を早くするススメ。
 
第三章ナビゲーション &lt; 第4回デザイニング・インターフェース勉強会
第三章ナビゲーション &lt; 第4回デザイニング・インターフェース勉強会第三章ナビゲーション &lt; 第4回デザイニング・インターフェース勉強会
第三章ナビゲーション &lt; 第4回デザイニング・インターフェース勉強会
 
WordCampTokyo2012 開催のお知らせとスタッフ募集
WordCampTokyo2012 開催のお知らせとスタッフ募集WordCampTokyo2012 開催のお知らせとスタッフ募集
WordCampTokyo2012 開催のお知らせとスタッフ募集
 
WordPressマルチサイト機能を使ってブログポータルを作ってみよう!
WordPressマルチサイト機能を使ってブログポータルを作ってみよう!WordPressマルチサイト機能を使ってブログポータルを作ってみよう!
WordPressマルチサイト機能を使ってブログポータルを作ってみよう!
 
4時間まったりWordPressテーマ作成講座
4時間まったりWordPressテーマ作成講座4時間まったりWordPressテーマ作成講座
4時間まったりWordPressテーマ作成講座
 
WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?
 
WordPressの管理画面を徹底カスタマイズ!
WordPressの管理画面を徹底カスタマイズ!WordPressの管理画面を徹底カスタマイズ!
WordPressの管理画面を徹底カスタマイズ!
 

Último

Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 

Último (20)

Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 

An easy guide to Plugin Development