View
1.520
Download
2
Category
Preview:
DESCRIPTION
Wordpress mit der Kommandozeile steuern. Mit dem Tool WP-CLI kann man Wordpress per Kommandozeile steuern.
Citation preview
WP-CLI - Ein Kommandozeilen Interface für WordPress
23.10.2013 Frank Staude <frank@staude.net>
WP-CLI ?WP-CLI ( WordPress - Command Line Interface) ist ein Programm, mit dem man Wordpress per Kommandozeile bedienen kann. !Warum braucht man das? - Admins sind gewohnt mit der Tastatur zu arbeiten - Mit der Tastatur ist man in der Regel schneller als in einem Webinterface - Mit Kommandos kann man Aufgaben automatisieren
VoraussetzungenUm WP-CLI zu installieren braucht es ein paar Dinge !- Unix shell. ( OS X, Linux, Windows mit Cygwin) - PHP 5.3 oder neuer - php-cli im PHP aktiviert (php -v / phpinfo zum prüfen) - Git - Wordpress 3.4 oder neuer !
InstallationEin Installationsscript kann direkt von GitHub geladen und ausgeführt werden. !curl https://raw.github.com/wp-cli/wp-cli.github.com/master/installer.sh | bash !Das installiert WP-CLI im Verzeichnis .wp-cli im Benutzerverzeichnis. Damit es von überall gefunden wird, sollte man danach noch das bin Verzeichnis von wp-cli mit im Pfad seiner Shell aufnehmen. Eine Entsprechende Meldung gibt der Installer aus. !MySQL muss im Pfad liegen, sonst scheitert wp core config !Alternative Installationsmethoden: https://github.com/wp-cli/wp-cli/wiki/Alternative-Install-Methods
Erster StartNun kann WP-CLI durch die Eingabe von wp aufgerufen werden. !
Mehr KomfortWP-CLI bietet auch s.g. Tab completion, also die Funktionalität bei drücken der Tabulator Taste das Kommando zu vervollständigen oder (wenn nicht eindeutig) die Liste der Kommandos auszugeben. !Dazu muss man seine .profile Datei ergänzen um !source $HOME/.wp-cli/vendor/wp-cli/wp-cli/utils/wp-completion.bash !!
wp
wp cache
wp cap
wp cli
wp comment
wp core
wp db
wp eval
wp eval-file
wp export
wp help
wp import
wp media
wp network-meta
wp option
wp plugin
wp post
wp post-meta
wp rewrite
wp role
wp scaffold
wp search-replace
wp site
wp term
wp theme
wp transient
wp user
wp user-meta
Beispiele: WP VersionEntweder man wechselt in das Verzeichnis der jeweiligen Wordpress Installation !staude$ cd Wordpress\ Dev/!staude$ wp core version!3.6.1!!oder man übergibt den Pfad mittels --path=‘pfad/zur/WP/Installation‘ !staude$ wp core version --path='/Users/staude/Projekte/Wordpress Dev'!3.6.1!
Beispiele: Plugins auflistenstaude$ wp plugin list!+-----------------------------------+----------+--------+---------+!| name | status | update | version |!+-----------------------------------+----------+--------+---------+!| akismet | inactive | none | 2.5.9 |!| backend-startpage-customizer | inactive | none | 0.2 |!| blog-description-randomizer | inactive | none | 0.1 |!| codestyling-localization | active | none | 1.99.30 |!| disable-author-pages | active | none | 0.2 |!| disable-title | active | none | 0.5 |!| downloads-per-page | active | none | 0.1 |!| google-analytics-dashboard-for-wp | active | none | 4.2.1 |!| mime-types-extended | active | none | 0.7 |!| my-own-plugins | inactive | none | 0.1 |!| post-author-filter | active | none | 0.1 |!| random-blog-description | inactive | none | 1.0 |!| scheduled-posts-dashboard-widget | active | none | 0.1 |!| scheduled-jobs-dashboard-widget | inactive | none | 0.2.2 |!| scheduled-unsticky | inactive | none | 0.2.2 |!| widget-or-sidebar-per-shortcode | inactive | none | 0.4 |!+-----------------------------------+----------+--------+---------+!
Beispiele: Plugins suchen
staude$ wp plugin search hello-dolly!Success: Showing 10 of 20 plugins.!+-------------------------------+-------------------------------+--------+!| name | slug | rating |!+-------------------------------+-------------------------------+--------+!| Hello Dolly | hello-dolly | 67.4 |!| Hello Dolly For Your Song | hello-dolly-for-your-song | 0 |!| Hello Simpsons Chalkboard Gag | hello-simpsons-chalkboard-gag | 100 |!| Hello Kurt | hello-kurt | 0 |!| Fancy Dolly | fancy-plugin | 91.4 |!| Hello Darth | hello-darth | 100 |!| Hello Hollywood | hello-hollywood | 100 |!| Hello Ziggy | hello-ziggy | 0 |!| Hello HAL | hello-hal | 100 |!| Unwanted Plugins Remover | unwanted-plugins-remover | 100 |!+-------------------------------+-------------------------------+--------+!
Beispiele: Plugin installieren
staude$ wp plugin install hello-dolly!Installing Hello Dolly (1.6)!Runterladen des Installationspakets von http://downloads.wordpress.org/plugin/hello-dolly.1.6.zip...!Entpacken des Pakets...!Das Plugin wird installiert...!Das Plugin wurde erfolgreich installiert.!
Beispiele: Plugin aktivieren
staude$ wp plugin activate hello-dolly!Success: Plugin 'hello-dolly' activated.!!!staude$ wp plugin deactivate hello-dolly!Success: Plugin 'hello-dolly' deactivated.!
Beispiele: WP installieren
In ein neues, leeres Verzeichnis gehen (oder --path überall angeben)!!staude$ wp core download!Downloading latest WordPress (en_US)...!Success: WordPress downloaded.!!staude$ wp core config --dbname=Datenbank --dbuser=Benutzer --dbpass=Kennwort!Success: Generated wp-config.php file.!!staude$ wp core install --url=test.de --title=title --admin_user=adminBenutzer --admin_password=adminKennwort --admin_email=admin@domain.tld!Success: WordPress installed successfully.!
Plugin + WP-CLIPlugins können ebenfalls das WP-CLI Interface implementieren und können dann ebenfalls perKomandozeile bedient werden. Zum Beispiel das Plugin Developer ( http://wordpress.org/plugins/developer ). !staude$ wp plugin install developer!Installing Developer (1.2.5)!Runterladen des Installationspakets von http://downloads.wordpress.org/plugin/developer.1.2.5.zip...!Entpacken des Pakets...!Das Plugin wird installiert...!Das Plugin wurde erfolgreich installiert.!!staude$ wp plugin activate developer!Success: Plugin 'developer' activated.!!!staude$ wp developer!usage: wp developer install-plugins --type=<type> [--activate]!!See 'wp help developer <subcommand>' for more information on a specific subcommand.!
Eigenes Plugin + WP-CLIAm Beispiel meines Plugins scheduled-unsticky ( http://wordpress.org/plugins/scheduled-unsticky/ ) demonstriere ich die Arbeiten um ein Plugin per WP-CLI steuerbar zu machen. !Abfragen des WP-CLI defines im Constructor und ggf laden einer Klasse die das CLI Interface implementiert. !if ( defined ( 'WP_CLI' ) && WP_CLI ) {! require_once( __DIR__ . '/class-wp-cli-commands.php' );!}
Eigenes Plugin + WP-CLIUnd die Implementierung!!<?php!class Scheduled_Unsticky_WP_CLI_Command extends WP_CLI_Command {! /**! * @subcommand info! */ ! function info( $args, $assoc_args ) {! $cron = get_option('scheduled_unsticky_cron');! $days = get_option( 'scheduled_unsticky_days' );! if ($cron != 0) {! $schedules = wp_get_schedules();! $cron = $schedules[$cron];! }! WP_CLI::line('interval: '. $cron );! WP_CLI::line('days : '. $days);! }! /**! * @subcommand days ! * @synopsis <days>! */! function days( $args ) {! $days = $args[0];! update_option( 'scheduled_unsticky_days', $days );! WP_CLI::success('days: '. $days);! }!}!!WP_CLI::add_command( 'scheduled-unsticky', 'Scheduled_Unsticky_WP_CLI_Command' );!!
Eigenes Plugin + WP-CLI
staude$ wp scheduled-unsticky!usage: wp scheduled-unsticky days <days>! or: wp scheduled-unsticky info!!See 'wp help scheduled-unsticky <subcommand>' for more information on a specific subcommand.!!!staude$ wp scheduled-unsticky info!interval: twicedaily!days : 2!!!staude$ wp scheduled-unsticky days 3!Success: days: 3!!!staude$ wp scheduled-unsticky info!interval: twicedaily!days : 3!!!
Links
WP-CLI !http://wp-cli.org/!!WP-CLI Wiki!https://github.com/wp-cli/wp-cli/wiki!!WP-CLI Installation!http://wp-cli.org/!!Alternative Installationsmöglichkeiten!https://github.com/wp-cli/wp-cli/wiki/Alternative-Install-Methods!!Command Cookbook - für Implementierung eigener Erweiterungen!https://github.com/wp-cli/wp-cli/wiki/Commands-Cookbook!!Scheduled Unsticky Plugin!http://wordpress.org/plugins/scheduled-unsticky/!
Recommended