A modular WP-CLI package for BuiltNorth WordPress development workflows.
wp package install builtnorth/wp-cli-builtnorthStandard WordPress project setup:
wp builtnorth setup --name="My Project" --email="admin@example.com" --password="secure123"This command provides:
- WordPress installation with database management
- Theme handling - Installs from composer, setup/data/themes, or default WordPress themes
- Plugin activation - Activates all available plugins
- Content import - Imports from setup/data/content/*.xml
- Media import - Imports with automatic logo/icon detection
- Settings configuration - Timezone, permalinks, upload settings
- Page setup - Configures home and blog pages if found
Options:
--name=<name>- Project name (required)--username=<username>- WordPress admin username (default: admin)--password=<password>- WordPress admin password (required)--email=<email>- WordPress admin email (required)
BuiltNorth-specific project setup with Compass theme:
wp builtnorth setup-bn-project --name="My Project" --email="admin@example.com" --password="secure123"This enhanced setup includes everything from standard setup plus:
- Compass theme conversion - Automatically converts the Compass theme to a project-specific theme
- Theme customization - Renames theme to match project name, removes git references
- Dependency management - Removes compass from composer.json after conversion
- NPM workspace integration - Adds the new theme to npm workspaces and updates build scripts
- Advanced configuration - Additional BuiltNorth-specific optimizations
Options:
--name=<name>- Project name (required)--username=<username>- WordPress admin username (default: admin)--password=<password>- WordPress admin password (required)--email=<email>- WordPress admin email (required)--skip-wordpress- Skip WordPress installation--yes- Skip confirmation prompts
Configure WordPress after installation:
wp builtnorth configureOptions:
--skip-content- Skip content import--skip-media- Skip media import--url=<url>- Override site URL for search-replace--yes- Skip confirmation prompts
Convert posts from one post type to another:
# Basic conversion
wp builtnorth post-type-switch --from=post --to=article
# Preview changes without making them
wp builtnorth post-type-switch --from=post --to=news --dry-run
# Convert only published posts
wp builtnorth post-type-switch --from=post --to=resource --status=publish
# Convert with taxonomy handling
wp builtnorth post-type-switch --from=post --to=portfolio --include-taxonomiesFeatures:
- Safe conversion with validation and confirmation prompts
- Dry run mode to preview changes
- Taxonomy handling - preserves shared taxonomies, removes unsupported ones
- Status filtering - convert only posts with specific status
- Batch limiting - test with a limited number of posts first
- Automatic cleanup - flushes rewrite rules and clears caches
Options:
--from=<post-type>- Source post type (required)--to=<post-type>- Target post type (required)--status=<status>- Only convert posts with this status (default: any)--limit=<number>- Limit number of posts to convert--dry-run- Preview changes without making them--include-taxonomies- Handle taxonomy mappings between post types--yes- Skip confirmation prompt
Generate test content for development:
wp builtnorth generate --count=20 --post-type=postOptions:
--count=<count>- Number of posts to generate (default: 10)--post-type=<post-type>- Post type to generate (default: post)--taxonomy=<taxonomy>- Taxonomy to assign terms from--terms=<terms>- Comma-separated list of term slugs to create/assign--random-terms- Randomly assign terms to posts--with-content- Generate content for posts
- Create a new command class in
src/Commands/extendingBaseCommand - Register it in
command.php - Use traits from
src/Traits/for common functionality
Example:
namespace BuiltNorth\CLI\Commands;
use BuiltNorth\CLI\BaseCommand;
class ExportCommand extends BaseCommand {
protected $command_name = 'export';
protected function get_shortdesc() {
return 'Export site data';
}
public function __invoke($args, $assoc_args) {
// Implementation
}
}- BaseCommand - Common functionality for all commands
- Traits - Reusable functionality (FileOperations, etc.)
- Utils - Helper classes
- Commands - Individual command implementations
This modular structure allows easy addition of new commands like import/export, migration tools, and more.