WordPress is really interesting as a target platform, widgets, apps and self-hosted backend, – as it is an open platform and lots of people already runs it and knows how to host it themselves.
Notes
Just started diving into WordPress, as I plan to use this as auth and distribution platform, for the web/apps I am building.
This page contains various notes about WordPress, as I dive more into it.
Notes:
- Theme development, block themes vs classic themes
- Plugin usage / vetting / examples
- Plugin development and publishing
- Embedding: shortcodes vs inline html
- nonces
- REST-API
- Application passwords, ie./wp-admin/authorize-application.php?app_name=appname&success_url=https%3A%2F%2Fexample.com
- Open source
- Hosting: simple vs trellis vs outsourced/hosted
- Why WordPress from developer perspective
- Examples unofficial university website
Plugins
Survey of plugins that I might use or dive more into.
-
Markdown support
- WP Githuber MD has decent markdown support and has open development.
JetPack. The most popular plugin with markdown support is JetPack, – but unfortunately this is bundled with other features, including external tracking which I do not want on my sites.
-
Image galleries
- FooGallery is the gallery I use here, as it is quite popular (regularly maintained, more eyes on security), and has (somewhat) open development.
NextGen Gallery. The most popular image gallery seems to be NextGen Gallery, – but it didn't work properly on my sites (error occured), so choose FooGallery instead.
-
Other
- Disable Comments.
- Redirection.
- The Events Calendar seems like the most popular plugin for events, – so I'll use this if needed later, and also for development-integration.
- Yoast SEO for better search engine visibility
Installation/setup
docker-compose.yml
version: '3.8'
services:
db:
container_name: 'db'
image: 'mariadb:latest'
volumes:
- './mariadb:/var/lib/mysql'
ports:
- 18766:3306
environment:
MYSQL_ROOT_PASSWORD: super_secret_password
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: secret_password
wordpress:
container_name: 'wp'
depends_on:
- db
image: 'wordpress:latest'
ports:
- 80:80
environment:
WORDPRESS_DB_HOST: 'db:3306'
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: secret_password
WORDPRESS_DB_NAME: wordpress
volumes:
- "./www:/var/www/html"
- "./plugins:/var/www/html/wp-content/plugins"
Create new database:
CREATE USER user@localhost IDENTIFIED BY 'secret_password';
CREATE DATABASE db;
GRANT ALL ON db.* TO user@localhost;
FLUSH PRIVILEGES;