{"id":14955010,"url":"https://github.com/szepeviktor/wordpress-website-lifecycle","last_synced_at":"2025-04-09T20:11:45.714Z","repository":{"id":68727292,"uuid":"580873787","full_name":"szepeviktor/wordpress-website-lifecycle","owner":"szepeviktor","description":"How to work with WordPress 📅 for long years","archived":false,"fork":false,"pushed_at":"2025-04-06T15:19:06.000Z","size":192,"stargazers_count":74,"open_issues_count":18,"forks_count":9,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-04-09T20:11:42.301Z","etag":null,"topics":["active-development","agency-website","long-term","self-hosted","wordpress","wordpress-development","wordpress-plugin","wordpress-site","wordpress-theme"],"latest_commit_sha":null,"homepage":"https://github.com/stars/szepeviktor/lists/wordpress","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/szepeviktor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-21T17:07:38.000Z","updated_at":"2025-04-09T09:15:18.000Z","dependencies_parsed_at":"2025-01-16T14:17:07.462Z","dependency_job_id":"a59f105a-bcee-4d58-bb16-e59a1dcfe1a5","html_url":"https://github.com/szepeviktor/wordpress-website-lifecycle","commit_stats":{"total_commits":125,"total_committers":1,"mean_commits":125.0,"dds":0.0,"last_synced_commit":"c9b22a34f82aae4bb45bf78e90aa4f139d370c1e"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szepeviktor%2Fwordpress-website-lifecycle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szepeviktor%2Fwordpress-website-lifecycle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szepeviktor%2Fwordpress-website-lifecycle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szepeviktor%2Fwordpress-website-lifecycle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/szepeviktor","download_url":"https://codeload.github.com/szepeviktor/wordpress-website-lifecycle/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248103872,"owners_count":21048245,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["active-development","agency-website","long-term","self-hosted","wordpress","wordpress-development","wordpress-plugin","wordpress-site","wordpress-theme"],"created_at":"2024-09-24T13:10:23.078Z","updated_at":"2025-04-09T20:11:45.686Z","avatar_url":"https://github.com/szepeviktor.png","language":"PHP","readme":"# WordPress website lifecycle\n\n[![Tweet](https://img.shields.io/badge/Tweet-share-d5d5d5?style=social\u0026logo=twitter)](https://twitter.com/intent/tweet?text=Here%20is%20how%20to%20run%20WordPress\u0026url=https%3A%2F%2Fgithub.com%2Fszepeviktor%2Fwordpress-website-lifecycle)\n\nHow to work with WordPress. :bulb:\n`#active-development` `#self-hosted` `#long-term` `#monitoring`\n\nWe run WordPress on Debian GNU/Linux operating system\nwhich runs on an UpCloud cloud instance.\n\n## Division of labour\n\nWho does what.\n\n1.  Editor manages the content and related settings.\n2.  Developer commits plugin and theme source code to GitHub\n    and initiates deployment (CI/CD).\n3.  Viktor manages the operating system, webserver software,\n    WordPress core, plugins, the theme, privileged users,\n    system settings, security, backup and migrations.\n\nThere is no web-based administration.\nWordPress installation is managed with git, **Composer** and WP-CLI on the command-line.\n\n## More than the famous 5-minute installation\n\nOur WordPress installation includes preparations for the next few **error-free years**.\n\nThese preparations are implemented in [MU plugins](/mu-plugins/).\n\n## Support my work\n\nPlease consider sponsoring me monthly if you use my packages in an agency.\n\n[![Sponsor](https://github.com/szepeviktor/.github/raw/master/.github/assets/github-like-sponsor-button.svg)](https://github.com/sponsors/szepeviktor)\n\nThey are already sponsoring me.\n\n\u003c!-- markdownlint-disable MD033 --\u003e\n[\u003cimg src=\"https://github.com/johnbillion.png\" width=\"50px\" alt=\"johnbillion\"\u003e](https://github.com/johnbillion)\u0026nbsp;\u0026nbsp;\n[\u003cimg src=\"https://github.com/JJJ.png\" width=\"50px\" alt=\"JJJ\"\u003e](https://github.com/JJJ)\u0026nbsp;\u0026nbsp;\n[\u003cimg src=\"https://github.com/montchr.png\" width=\"50px\" alt=\"montchr\"\u003e](https://github.com/montchr)\u0026nbsp;\u0026nbsp;\n[\u003cimg src=\"https://github.com/blockifywp.png\" width=\"50px\" alt=\"blockifywp\"\u003e](https://github.com/blockifywp)\u0026nbsp;\u0026nbsp;\n\u003c!-- markdownlint-enable MD033 --\u003e\n\n## Working in a git repository\n\nOur WordPress installation is stored in a git repository\nand managed with Composer.\n\nThis is the starter template.\n[szepeviktor/composer-managed-wordpress](https://github.com/szepeviktor/composer-managed-wordpress)\n\nCustom plugins and themes live in separate git repositories.\n\n**Purchased themes** should have an active child theme.\n\n```bash\nwp plugin install child-theme-configurator --activate\n```\n\nKeep the child theme in a git repository also.\n\n## Onboarding for developers\n\nLet's prevent working against each other!\n\n-   Don't write code changing WordPress core behavior anywhere else than **MU plugins**,\n    - removing admin menus, admin bar elements\n    - disabling emojis\n    - disabling comments\n    - disabling feeds\n    - disabling embeds\n    - mail settings and logging\n    - WAF: authentication/login, HTTP and REST API security\n    - comment form and contact form spam traps\n    - media management\n    - nav menu, translation and content caching\n    - HTTP and HTML optimization\n    - CDN support\n-   Plugin update check HTTP requests and updates themselves are disabled\n    because the entire WordPress installation is **managed with Composer**\n-   Plugin and theme update and WordPress management-related admin pages are removed\n    (updated with Composer, administered with WP-CLI)\n-   WP-Cron is ran by a Linux cron job (the default pseudo cron/web callback is disabled)\n-   Only things necessary for generating custom admin pages\n    and generating HTML go into the **theme**\n-   Business logic (e.g. processing input from visitors) goes into **plugins**\n-   Please adhere to a coding standard of **your choice**\n-   Please avoid [discouraged functions](https://github.com/szepeviktor/phpcs-psr-12-neutron-hybrid-ruleset/blob/master/PSR12NeutronRuleset/ruleset.xml#L11)\n-   We run static analysis on all source code\n-   PSR-4 autoloading is suggested (no need for `require` and custom class autoloading)\n-   WordPress core is installed in a separate subdirectory\n-   Please also see [hosting information for developers](https://github.com/szepeviktor/debian-server-tools/blob/master/Onboarding.md#onboarding-for-developers)\n\n## High level overview\n\n:bulb:\n\n- [Hosting](https://github.com/szepeviktor/infrastructure-for-hosting-web-applications)\n- [Software stack](/WordPress-stack.md)\n- [Performance](/WordPress-performance.md)\n- [Security](/WordPress-security.md)\n- [Production environment](https://github.com/szepeviktor/debian-server-tools/blob/master/webserver/Production-website.md)\n\n## Installation materials\n\n-   WordPress installation: [szepeviktor/composer-managed-wordpress](https://github.com/szepeviktor/composer-managed-wordpress)\n-   [`wp-config`](/wp-config)\n-   _Alternative [WP-CLI installation](WP-CLI-installation.md)_\n-   MU plugins for core, theme and plugins: [/mu-plugins/](/mu-plugins)\n    and how to install [Default plugins](/Plugins.md)\n-   Starter plugin: [szepeviktor/starter-plugin](https://github.com/szepeviktor/starter-plugin)\n-   Starter theme: [timber/starter-theme](https://github.com/timber/starter-theme/tree/2.x)\n-   Starter child theme: [/divi-child/](/divi-child)\n-   Feature plugins: [szepeviktor/wordpress-plugin-construction](https://github.com/szepeviktor/wordpress-plugin-construction)\n\n## Plugin and Theme review\n\n- `wp plugin install https://github.com/WordPress/plugin-check/archive/refs/heads/trunk.zip`\n- `wordpress/plugin-check-action` GitHub action\n- `wp plugin install https://github.com/WordPress/theme-check/archive/refs/heads/master.zip`\n- `Wordpress/theme-review-action` GitHub action\n- [unofficial fork of Theme Check plugin](https://themecheck.info/)\n- [WPThemeReview Standard for PHP_CodeSniffer](https://github.com/WPTRT/WPThemeReview)\n- [PHP Insights](https://github.com/nunomaduro/phpinsights)\n\n## Development stuff\n\n- [Leaving legacy technologies behind](https://github.com/szepeviktor/starter-plugin)\n- [Hooks in WordPress](/WordPress-hooks.md)\n- [OOP for WordPress](/WordPress-OOP.md)\n- Tools for development: [SentencePress](https://github.com/szepeviktor/SentencePress)\n- `wp_mail` emails https://github.com/johnbillion/wp_mail\n\n## Testing\n\n- [Query Monitor](https://github.com/johnbillion/query-monitor)\n- [Test Mode](https://github.com/szepeviktor/test-mode)\n- Unit tests without a database https://github.com/Automattic/wordbless\n- [WP_Mock](https://github.com/10up/wp_mock)\n- [Codeception](https://github.com/lucatume/wp-browser) (BDD)\n","funding_links":["https://github.com/sponsors/szepeviktor"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fszepeviktor%2Fwordpress-website-lifecycle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fszepeviktor%2Fwordpress-website-lifecycle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fszepeviktor%2Fwordpress-website-lifecycle/lists"}