Why every developer 

should read Plato
@OmarReiss
CTO at Yoast
Philosopher
Developer
Platomar
26%
What makes WordPress a superhero?
WordPress makes users awesome!
Source: useronboard.com
What makes WordPress a superhero?
How does WordPress turn users into
superheroes?
We can build almost anything using
WordPress
47,260 plugins
You can write a WordPress plugin 

with 0 lines of code.
What makes WordPress so easy to plugin to?
Filters! (and actions)
API
add_filter
remove_filter
apply_filters
Filters
A filter is a function
A filter is a function
Timing
The plugins are loaded
WordPress is initialised
The head is rendered
The content is rendered
After
After
do_action(‘plugins_loaded’)
do_action(‘init’)
do_action(‘wp_head’)
apply_filters(‘the content’)
Before
Before
Why every developer should read Plato
What should we use filters for?
“As a site owner, I want Yoast SEO to use the excerpt as a
meta description.”
Usecase
“As a custom fields plugin builder, I want Yoast SEO to use
a custom field as a meta description.”
Usecase
“As a {ROLE}, I want Yoast SEO to use {FIELD} as a meta
description.”
Usecase
How does this translate to WordPress?
“As a {ROLE}, I want to be able to filter the meta
description that Yoast SEO outputs.”
Usecase
Example
Example
What is a meta description?
Filter the output
Filter the data
Filtering the output
Filtering the data
Data types
String -> “hello”
Integer -> 123
Array -> [$a, $b, $c]
etc.
What is data?
Is “<html><body>Hello world</body></html>” a string?
V = f( M )
View = function( Model )
Filter data, not representation
Filter the data
Filtering the data
Can I safely filter data?
Type juggling
#YO
LO
Notice: Array to string conversion…
Type checking madness
Never trust filtered data
Because #YOLO
Hey! But wasn’t this supposed to be easy?
And what does this have to do with Plato?
- Maieutike
- Irony
- Anamnesis
26%
What makes WordPress a superhero?
WordPress makes users awesome!
Source: useronboard.com
What makes WordPress a superhero?
How does WordPress turn users into
superheroes?
We can build almost anything using
WordPress
47,260 plugins
You can write a WordPress plugin 

with 0 lines of code.
What makes WordPress so easy to plugin to?
Filters! (and actions)
API
add_filter
remove_filter
apply_filters
Filters
A filter is a function
What is
a filter?
A filter is a function
Timing
The plugins are loaded
WordPress is initialised
The head is rendered
The content is rendered
After
After
do_action(‘plugins_loaded’)
do_action(‘init’)
do_action(‘wp_head’)
apply_filters(‘the content’)
Before
Before
Why every developer should read Plato
What should we use filters for?
“As a site owner, I want Yoast SEO to use the excerpt as a
meta description.”
Usecase
“As a custom fields plugin builder, I want Yoast SEO to use
a custom field as a meta description.”
Usecase
“As a {ROLE}, I want Yoast SEO to use {FIELD} as a meta
description.”
Usecase
How does this translate to WordPress?
“As a {ROLE}, I want to be able to filter the meta
description that Yoast SEO outputs.”
Usecase
Example
Example
What is a meta description?
Filter the output
Filter the data
Filtering the output
Filtering the data
Data types
String -> “hello”
Integer -> 123
Array -> [$a, $b, $c]
etc.
What is data?
Is “<html><body>Hello world</body></html>” a string?
V = f( M )
View = function( Model )
Filter data, not representation
Filter the data
Filtering the data
Can I safely filter data?
Type juggling
#YO
LO
Notice: Array to string conversion…
Type checking madness
Never trust filtered data
Because #YOLO
But wasn’t this supposed to be easy?
Issues with filters
In WordPress it’s hard to distinguish representation
from raw data, because of reasons.
In WordPress it’s not possible to trust filtered data,
because of reasons.
In WordPress it’s not possible to know when a filter
was applied, because of reasons.
Conclusion
And what does this have to do with Plato?
Why every developer should read Plato
Plato working on his art
To learn about Socrates
To learn about Plato
To practice inquiry
Thank you!
@OmarReiss

More Related Content

PDF
Integrating Apache Wookie with AEM || AEM-Wookie Connector Tool
PPT
Alloy backbone
PDF
Integrating Apache Wookie with AEM by Rima Mittal and Ankit Gubrani
PPTX
BrightonSEO 2020 - Mastering The API and Having Fun Along The Way
PPTX
Everything WordPress
PPTX
WordPress Plugins
PPTX
Advanced Wordpress 201
PDF
How to create user friendly file hosting link sites
Integrating Apache Wookie with AEM || AEM-Wookie Connector Tool
Alloy backbone
Integrating Apache Wookie with AEM by Rima Mittal and Ankit Gubrani
BrightonSEO 2020 - Mastering The API and Having Fun Along The Way
Everything WordPress
WordPress Plugins
Advanced Wordpress 201
How to create user friendly file hosting link sites

What's hot (20)

PDF
What Is WordPress and Why Should I Use It? - Workshop April 2015
PDF
WordPress, Schema & more
PPTX
Installing WordPress The Right Way
PPTX
Migrating from AngularJS when you can't use the word "Big Bang@
PDF
WordPress Security Basics - Melbourne WordPress User Meetup
PDF
Java Web Application Security - Utah JUG 2011
PPTX
WordPress Lightning Fast
PDF
Rapid Development with Azure Spring Cloud
PPTX
Sexy, Powerful, Exciting
PDF
WordCamp San Diego 2015 - WordPress, WP-API, and Web Applications
PDF
Essential plugins for your WordPress Website
PPTX
Use case 1 - for Sitecore Automation Module
PPTX
Personal Branding & Blogging 101
PDF
Wordpress plugin
PDF
Getting More Done In Less Time - Introducing WordPress Automation Using Ansible
PDF
Wordpress beyond blogging
PPTX
Building Creative Product Extensions with Experience Manager
PDF
WordCamp Seoul 2012
PDF
Web App Security for Java Developers - UberConf 2021
What Is WordPress and Why Should I Use It? - Workshop April 2015
WordPress, Schema & more
Installing WordPress The Right Way
Migrating from AngularJS when you can't use the word "Big Bang@
WordPress Security Basics - Melbourne WordPress User Meetup
Java Web Application Security - Utah JUG 2011
WordPress Lightning Fast
Rapid Development with Azure Spring Cloud
Sexy, Powerful, Exciting
WordCamp San Diego 2015 - WordPress, WP-API, and Web Applications
Essential plugins for your WordPress Website
Use case 1 - for Sitecore Automation Module
Personal Branding & Blogging 101
Wordpress plugin
Getting More Done In Less Time - Introducing WordPress Automation Using Ansible
Wordpress beyond blogging
Building Creative Product Extensions with Experience Manager
WordCamp Seoul 2012
Web App Security for Java Developers - UberConf 2021
Ad

Viewers also liked (12)

PPTX
How to optimize the pricing of your membership website.
PDF
How to Demonstrate the Value of Social Media to Your Boss - Chris Brogan
PDF
11 Essential Ingredients Every Cornerstone Content Page Needs
PDF
5 Ways to Write a Damn Good Sentence
PDF
Copyblogger: 10 Rules for Creating Content People Can Trust
PPT
What it Takes to Go from Little League to the Major Leagues
PPTX
Why Startups Suck at Marketing
PDF
What slide dimensions should you use for your presentations?
PDF
How to Write a Content Marketing Plan Step-by-Step
PDF
5 Secrets to Killer Lead Generation Using SlideShare
PPTX
Inside Google's Numbers in 2017
PDF
SMOKE - The Convenient Truth [1st place Worlds Best Presentation Contest] by ...
How to optimize the pricing of your membership website.
How to Demonstrate the Value of Social Media to Your Boss - Chris Brogan
11 Essential Ingredients Every Cornerstone Content Page Needs
5 Ways to Write a Damn Good Sentence
Copyblogger: 10 Rules for Creating Content People Can Trust
What it Takes to Go from Little League to the Major Leagues
Why Startups Suck at Marketing
What slide dimensions should you use for your presentations?
How to Write a Content Marketing Plan Step-by-Step
5 Secrets to Killer Lead Generation Using SlideShare
Inside Google's Numbers in 2017
SMOKE - The Convenient Truth [1st place Worlds Best Presentation Contest] by ...
Ad

Similar to Why every developer should read Plato (20)

PDF
Hacking WordPress: Making WP Work For You
KEY
Modular plugins
PPTX
WordPress DK at DrupalCamp Copenhagen 2009
PPTX
WordPress, the what, why, and how
PPT
Wordpress Beyond A Blog Word Camp Toronto08
KEY
Modular plugins
PDF
Jumping Into WordPress Plugin Programming
PDF
My first WordPress Plugin
PDF
Building a website with WordPress
ODP
Beginning WordPress Plugin Development
PPTX
Gutenberg Extended
PDF
WordPress + Flash = Lovers
PDF
Plugin Development for Beginners
PDF
WordPress Architecture for Tech-Savvy Managers
PDF
Beginning WordPress Workshop
ZIP
WordPress as a CMS
PPTX
5 things STILL! TOO! HARD! in Plone 5
PDF
Write your first WordPress plugin
PPTX
2016 WordCamp Pittsburgh - Let's Write a Plugin
KEY
WordPress - Open Source Overview Presentation
Hacking WordPress: Making WP Work For You
Modular plugins
WordPress DK at DrupalCamp Copenhagen 2009
WordPress, the what, why, and how
Wordpress Beyond A Blog Word Camp Toronto08
Modular plugins
Jumping Into WordPress Plugin Programming
My first WordPress Plugin
Building a website with WordPress
Beginning WordPress Plugin Development
Gutenberg Extended
WordPress + Flash = Lovers
Plugin Development for Beginners
WordPress Architecture for Tech-Savvy Managers
Beginning WordPress Workshop
WordPress as a CMS
5 things STILL! TOO! HARD! in Plone 5
Write your first WordPress plugin
2016 WordCamp Pittsburgh - Let's Write a Plugin
WordPress - Open Source Overview Presentation

Recently uploaded (20)

PDF
Website Design Services for Small Businesses.pdf
PDF
Visual explanation of Dijkstra's Algorithm using Python
PDF
Ableton Live Suite for MacOS Crack Full Download (Latest 2025)
PPTX
"Secure File Sharing Solutions on AWS".pptx
PDF
iTop VPN Crack Latest Version Full Key 2025
PDF
Autodesk AutoCAD Crack Free Download 2025
PDF
DNT Brochure 2025 – ISV Solutions @ D365
PPTX
MLforCyber_MLDataSetsandFeatures_Presentation.pptx
PPTX
GSA Content Generator Crack (2025 Latest)
DOCX
How to Use SharePoint as an ISO-Compliant Document Management System
PPTX
Full-Stack Developer Courses That Actually Land You Jobs
PPTX
Computer Software - Technology and Livelihood Education
PDF
Wondershare Recoverit Full Crack New Version (Latest 2025)
PPTX
Tech Workshop Escape Room Tech Workshop
PPTX
Cybersecurity-and-Fraud-Protecting-Your-Digital-Life.pptx
PDF
Multiverse AI Review 2025: Access All TOP AI Model-Versions!
PPTX
Airline CRS | Airline CRS Systems | CRS System
PDF
Salesforce Agentforce AI Implementation.pdf
PDF
The Dynamic Duo Transforming Financial Accounting Systems Through Modern Expe...
PDF
EaseUS PDF Editor Pro 6.2.0.2 Crack with License Key 2025
Website Design Services for Small Businesses.pdf
Visual explanation of Dijkstra's Algorithm using Python
Ableton Live Suite for MacOS Crack Full Download (Latest 2025)
"Secure File Sharing Solutions on AWS".pptx
iTop VPN Crack Latest Version Full Key 2025
Autodesk AutoCAD Crack Free Download 2025
DNT Brochure 2025 – ISV Solutions @ D365
MLforCyber_MLDataSetsandFeatures_Presentation.pptx
GSA Content Generator Crack (2025 Latest)
How to Use SharePoint as an ISO-Compliant Document Management System
Full-Stack Developer Courses That Actually Land You Jobs
Computer Software - Technology and Livelihood Education
Wondershare Recoverit Full Crack New Version (Latest 2025)
Tech Workshop Escape Room Tech Workshop
Cybersecurity-and-Fraud-Protecting-Your-Digital-Life.pptx
Multiverse AI Review 2025: Access All TOP AI Model-Versions!
Airline CRS | Airline CRS Systems | CRS System
Salesforce Agentforce AI Implementation.pdf
The Dynamic Duo Transforming Financial Accounting Systems Through Modern Expe...
EaseUS PDF Editor Pro 6.2.0.2 Crack with License Key 2025

Why every developer should read Plato