Thanks for your interest in contributing to MultiSyde!
This plugin explores improvements for the WordPress Multisite experience, especially around usability, visibility, and admin workflows. Whether you're here to fix a bug, suggest an enhancement, or build something new — you're welcome!
- Getting Started
- Development Setup
- Code Standards
- Creating a Pull Request
- Feature Structure
- Reporting Issues
- Code of Conduct
Before contributing, it's a good idea to familiarize yourself with:
- How WordPress Multisite works.
- The purpose of each feature module in the plugin.
You can explore the plugin’s features in the modules/ directory or by visiting the Feature Overview.
We recommend using the WordPress Environment for local development.
git clone git@github.com:inpsyde/multisyde.git
cd multisyde
composer install
npm install -g @wordpress/env
wp-env startYour environment will be available at http://localhost:8888
(Default credentials: Username: admin, Password: password)
Database credentials:
- User:
root - Password:
password
- PHP: Follow WordPress PHP Coding Standards
- JavaScript (if applicable): Follow WordPress JavaScript Coding Standards
- Use
phpcsandPHPStan(level 8) to validate your code.
composer run cs
composer run phpstan- Fork the repository on GitHub.
- Create a new branch:
git checkout -b feature/my-contribution
- Make your changes and commit them with meaningful messages.
- Run code quality tools before submitting:
composer run qa
- Push your branch and open a pull request against the main branch.
Please include in your PR:
- A clear description of what your change does
- Links to related issues or Trac tickets (if any)
- Screenshots or screencasts for UI-related features
- Notes on testing or impacts to existing functionality
Each feature is placed in its own directory under modules/ and follows a clear, modular structure to ensure ease of development, maintenance, and testing. Using LastUserLogin as an example:
The Feature class:
- Implements the
LoadableFeatureinterface. - Hooks into WordPress' Network Admin screens (
manage_users-network_columns,wp_login, etc.). - Defines constants (
COLUMN_KEY,META_KEY) that uniquely identify the feature's logic and storage. - Handles:
- Display of the custom column.
- Recording login time via
wp_loginaction. - Sortability by login date in the user table.
- Conditional rendering based on user permissions.
The module includes a dedicated README.md file that:
- Describes the purpose and functionality of the feature.
- Outlines how it works and key implementation details.
- Includes screenshots and practical use cases.
- Credits the original developer, if applicable.
Additional files may be included:
About.php: Provides metadata for the presenter or integration with feature discovery.CHANGELOG.md: Documents changes specific to the feature across versions.
If you run into bugs or want to suggest an improvement:
- Open a GitHub issue
- Clearly describe what’s happening and what you expected
- Include any error messages, reproduction steps, or environment details
We follow the WordPress Community Code of Conduct. Be respectful and inclusive in all your interactions.
Thanks for helping improve MultiSyde! ❤️ — The Syde Team