Skip to content

Commit

Permalink
Merge pull request #2444 from wp-cli/2383-term-meta
Browse files Browse the repository at this point in the history
Manage term meta with `wp term meta`
  • Loading branch information
danielbachhuber committed Feb 3, 2016
2 parents 0d29675 + 8660b7d commit 1b8da36
Show file tree
Hide file tree
Showing 2 changed files with 72 additions and 0 deletions.
35 changes: 35 additions & 0 deletions features/term-meta.feature
@@ -0,0 +1,35 @@
Feature: Manage term custom fields

@require-wp-4.4
Scenario: Term meta CRUD
Given a WP install

When I run `wp term meta add 1 foo 'bar'`
Then STDOUT should not be empty

When I run `wp term meta get 1 foo`
Then STDOUT should be:
"""
bar
"""

When I try `wp term meta get 999999 foo`
Then STDERR should be:
"""
Error: Could not find the term with ID 999999.
"""

When I run `wp term meta set 1 foo '[ "1", "2" ]' --format=json`
Then STDOUT should not be empty

When I run `wp term meta get 1 foo --format=json`
Then STDOUT should be:
"""
["1","2"]
"""

When I run `wp term meta delete 1 foo`
Then STDOUT should not be empty

When I try `wp term meta get 1 foo`
Then the return code should be 1
37 changes: 37 additions & 0 deletions php/commands/term.php
Expand Up @@ -411,5 +411,42 @@ private function get_formatter( &$assoc_args ) {
}
}

/**
* Manage term custom fields.
*
* ## OPTIONS
*
* --format=json
* : Encode/decode values as JSON.
*
* ## EXAMPLES
*
* wp term meta set category 123 description "Mary is a WordPress developer."
*/
class Term_Meta_Command extends \WP_CLI\CommandWithMeta {
protected $meta_type = 'term';

/**
* Check that the term ID exists
*
* @param int
*/
protected function check_object_id( $object_id ) {
$term = get_term( $object_id );
if ( ! $term ) {
WP_CLI::error( "Could not find the term with ID {$object_id}." );
}
return $term->term_id;
}

}

WP_CLI::add_command( 'term', 'Term_Command' );
WP_CLI::add_command( 'term meta', 'Term_Meta_Command', array(
'before_invoke' => function() {
if ( \WP_CLI\Utils\wp_version_compare( '4.4', '<' ) ) {
WP_CLI::error( "Requires WordPress 4.4 or greater." );
}
})
);

0 comments on commit 1b8da36

Please sign in to comment.