This is the podcast publishing plugin for WordPress.
- Getting Started & Documentation
- Podlove Community
- Latest stable version: in WordPress plugin directory
- Podlove Project & Blog
- Report a bug: Use GitHub Issues
PHP dependencies are managed via Composer. So you need to clone the repository and then fetch the dependencies via Composer. JavaScript packages are managed with yarn.
Clone the publisher in the wp-content/plugins directory.
git clone --recursive https://github.com/podlove/podlove-publisher.git
cd podlove-publisher
curl -sS https://getcomposer.org/installer | php
make install
If you have a docker environment handy you can simply run:
make docker-install
- Change your working direcetory to
js/ - Run
npm install - Run
npm run serveto start the development build - Go to your local Wordpress environment and see your changes
- Create an Wordpress application password
- Update the authorization tokens in=
client/index.html - Change your working directory to
client/ - Run
npm install - For isolated development run
WORDPRESS_URL=http://podlove.local npm run devwith your Wordpress environment - For integrated development run
npm run serveand go to your local Wordpress environment and see your changes
Integration tests use the official WordPress PHPUnit setup via wp-env, which starts a Docker-based WordPress test environment.
Prerequisites:
- Docker is running
- Node.js + npm
- PHP + Composer
First-time setup:
composer install
composer bin php-scoper install
composer prefix-dependencies
npm install
npm run wp-env:start
You can use wp-env to run a local WordPress instance with the plugin mounted from this repo.
Start the environment:
npm install
npm run wp-env:start
Open:
- Site: http://localhost:8888
- Admin: http://localhost:8888/wp-admin
- Default credentials: admin / password
Useful commands:
npm run wp-env:stop
npx wp-env destroy
npx wp-env run cli -- wp option get siteurl
Run integration tests:
npm run test
If wp-env run fails with a missing docker-compose file, the environment was not created yet or was cleaned up. Recreate it with:
npx wp-env destroy
npm run wp-env:start
Use PHP-CS-Fixer to format code before committing.
You can do so manually via command line (make format) or configure your editor to format the file on save. For VS Code, use the "php cs fixer" extension by junstyle.
Both beta and stable releases are creates with GitHub Actions.
To release a new stable version:
- manually update the following fields in
readme.txt:
- Tested up to
- Stable tag
- check that changelog has an entry
bash bin/release.sh, which does:
- updates version in
podlove.php - creates release commit
- tags commit
- git push
The GitHub action detects the release via the tag, builds it and submits it to the wordpress.org plugin directory.