arrow_back_ios WordPress menu group

WordPress

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;