Skip to content

Commit 250ed0d

Browse files
authored
Merge pull request #254 from wp-cli/allow-unserialization
Add `--unserialize` option for meta list
2 parents 81741bc + d09f72d commit 250ed0d

File tree

6 files changed

+134
-5
lines changed

6 files changed

+134
-5
lines changed

README.md

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -460,7 +460,7 @@ wp comment meta get <id> <key> [--format=<format>]
460460
List all metadata associated with an object.
461461

462462
~~~
463-
wp comment meta list <id> [--keys=<keys>] [--fields=<fields>] [--format=<format>] [--orderby=<fields>] [--order=<order>]
463+
wp comment meta list <id> [--keys=<keys>] [--fields=<fields>] [--format=<format>] [--orderby=<fields>] [--order=<order>] [--unserialize]
464464
~~~
465465

466466
**OPTIONS**
@@ -505,6 +505,9 @@ wp comment meta list <id> [--keys=<keys>] [--fields=<fields>] [--format=<format>
505505
- desc
506506
---
507507

508+
[--unserialize]
509+
Unserialize meta_value output.
510+
508511

509512

510513
### wp comment meta patch
@@ -1442,7 +1445,7 @@ wp network meta get <id> <key> [--format=<format>]
14421445
List all metadata associated with an object.
14431446

14441447
~~~
1445-
wp network meta list <id> [--keys=<keys>] [--fields=<fields>] [--format=<format>] [--orderby=<fields>] [--order=<order>]
1448+
wp network meta list <id> [--keys=<keys>] [--fields=<fields>] [--format=<format>] [--orderby=<fields>] [--order=<order>] [--unserialize]
14461449
~~~
14471450

14481451
**OPTIONS**
@@ -1487,6 +1490,9 @@ wp network meta list <id> [--keys=<keys>] [--fields=<fields>] [--format=<format>
14871490
- desc
14881491
---
14891492

1493+
[--unserialize]
1494+
Unserialize meta_value output.
1495+
14901496

14911497

14921498
### wp network meta patch
@@ -2561,7 +2567,7 @@ wp post meta get <id> <key> [--format=<format>]
25612567
List all metadata associated with an object.
25622568

25632569
~~~
2564-
wp post meta list <id> [--keys=<keys>] [--fields=<fields>] [--format=<format>] [--orderby=<fields>] [--order=<order>]
2570+
wp post meta list <id> [--keys=<keys>] [--fields=<fields>] [--format=<format>] [--orderby=<fields>] [--order=<order>] [--unserialize]
25652571
~~~
25662572

25672573
**OPTIONS**
@@ -2606,6 +2612,9 @@ wp post meta list <id> [--keys=<keys>] [--fields=<fields>] [--format=<format>] [
26062612
- desc
26072613
---
26082614

2615+
[--unserialize]
2616+
Unserialize meta_value output.
2617+
26092618

26102619

26112620
### wp post meta patch
@@ -4152,7 +4161,7 @@ wp term meta get <id> <key> [--format=<format>]
41524161
List all metadata associated with an object.
41534162

41544163
~~~
4155-
wp term meta list <id> [--keys=<keys>] [--fields=<fields>] [--format=<format>] [--orderby=<fields>] [--order=<order>]
4164+
wp term meta list <id> [--keys=<keys>] [--fields=<fields>] [--format=<format>] [--orderby=<fields>] [--order=<order>] [--unserialize]
41564165
~~~
41574166

41584167
**OPTIONS**
@@ -4197,6 +4206,9 @@ wp term meta list <id> [--keys=<keys>] [--fields=<fields>] [--format=<format>] [
41974206
- desc
41984207
---
41994208

4209+
[--unserialize]
4210+
Unserialize meta_value output.
4211+
42004212

42014213

42024214
### wp term meta patch
@@ -4960,7 +4972,7 @@ wp user meta get <user> <key> [--format=<format>]
49604972
Lists all metadata associated with a user.
49614973

49624974
~~~
4963-
wp user meta list <user> [--keys=<keys>] [--fields=<fields>] [--format=<format>] [--orderby=<fields>] [--order=<order>]
4975+
wp user meta list <user> [--keys=<keys>] [--fields=<fields>] [--format=<format>] [--orderby=<fields>] [--order=<order>] [--unserialize]
49644976
~~~
49654977

49664978
**OPTIONS**
@@ -5005,6 +5017,9 @@ wp user meta list <user> [--keys=<keys>] [--fields=<fields>] [--format=<format>]
50055017
- desc
50065018
---
50075019

5020+
[--unserialize]
5021+
Unserialize meta_value output.
5022+
50085023
**EXAMPLES**
50095024

50105025
# List user meta

features/comment-meta.feature

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,3 +74,10 @@ Feature: Manage comment custom fields
7474
| 1 | apple | banana |
7575
| 1 | banana | a:2:{i:0;s:5:"apple";i:1;s:5:"apple";} |
7676

77+
When I run `wp comment meta list 1 --unserialize`
78+
Then STDOUT should be a table containing rows:
79+
| comment_id | meta_key | meta_value |
80+
| 1 | apple | banana |
81+
| 1 | apple | banana |
82+
| 1 | banana | ["apple","apple"] |
83+

features/post-meta.feature

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,41 +64,83 @@ Feature: Manage post custom fields
6464
| 1 | apple | banana |
6565
| 1 | banana | a:2:{i:0;s:5:"apple";i:1;s:5:"apple";} |
6666

67+
When I run `wp post meta list 1 --unserialize`
68+
Then STDOUT should be a table containing rows:
69+
| post_id | meta_key | meta_value |
70+
| 1 | apple | banana |
71+
| 1 | apple | banana |
72+
| 1 | banana | ["apple","apple"] |
73+
6774
When I run `wp post meta list 1 --orderby=id --order=desc`
6875
Then STDOUT should be a table containing rows:
6976
| post_id | meta_key | meta_value |
7077
| 1 | banana | a:2:{i:0;s:5:"apple";i:1;s:5:"apple";} |
7178
| 1 | apple | banana |
7279
| 1 | apple | banana |
7380

81+
When I run `wp post meta list 1 --orderby=id --order=desc --unserialize`
82+
Then STDOUT should be a table containing rows:
83+
| post_id | meta_key | meta_value |
84+
| 1 | banana | ["apple","apple"] |
85+
| 1 | apple | banana |
86+
| 1 | apple | banana |
87+
7488
When I run `wp post meta list 1 --orderby=meta_key --order=asc`
7589
Then STDOUT should be a table containing rows:
7690
| post_id | meta_key | meta_value |
7791
| 1 | apple | banana |
7892
| 1 | apple | banana |
7993
| 1 | banana | a:2:{i:0;s:5:"apple";i:1;s:5:"apple";} |
8094

95+
When I run `wp post meta list 1 --orderby=meta_key --order=asc --unserialize`
96+
Then STDOUT should be a table containing rows:
97+
| post_id | meta_key | meta_value |
98+
| 1 | apple | banana |
99+
| 1 | apple | banana |
100+
| 1 | banana | ["apple","apple"] |
101+
81102
When I run `wp post meta list 1 --orderby=meta_key --order=desc`
82103
Then STDOUT should be a table containing rows:
83104
| post_id | meta_key | meta_value |
84105
| 1 | banana | a:2:{i:0;s:5:"apple";i:1;s:5:"apple";} |
85106
| 1 | apple | banana |
86107
| 1 | apple | banana |
87108

109+
When I run `wp post meta list 1 --orderby=meta_key --order=desc --unserialize`
110+
Then STDOUT should be a table containing rows:
111+
| post_id | meta_key | meta_value |
112+
| 1 | banana | ["apple","apple"] |
113+
| 1 | apple | banana |
114+
| 1 | apple | banana |
115+
88116
When I run `wp post meta list 1 --orderby=meta_value --order=asc`
89117
Then STDOUT should be a table containing rows:
90118
| post_id | meta_key | meta_value |
91119
| 1 | apple | banana |
92120
| 1 | apple | banana |
93121
| 1 | banana | a:2:{i:0;s:5:"apple";i:1;s:5:"apple";} |
94122

123+
When I run `wp post meta list 1 --orderby=meta_value --order=asc --unserialize`
124+
Then STDOUT should be a table containing rows:
125+
| post_id | meta_key | meta_value |
126+
| 1 | apple | banana |
127+
| 1 | apple | banana |
128+
| 1 | banana | ["apple","apple"] |
129+
95130
When I run `wp post meta list 1 --orderby=meta_value --order=desc`
96131
Then STDOUT should be a table containing rows:
97132
| post_id | meta_key | meta_value |
98133
| 1 | banana | a:2:{i:0;s:5:"apple";i:1;s:5:"apple";} |
99134
| 1 | apple | banana |
100135
| 1 | apple | banana |
101136

137+
When I run `wp post meta list 1 --orderby=meta_value --order=desc --unserialize`
138+
Then STDOUT should be a table containing rows:
139+
| post_id | meta_key | meta_value |
140+
| 1 | banana | ["apple","apple"] |
141+
| 1 | apple | banana |
142+
| 1 | apple | banana |
143+
102144
Scenario: Delete all post meta
103145
Given a WP install
104146

features/user-meta.feature

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,54 +65,108 @@ Feature: Manage user custom fields
6565
[{"meta_key":"nickname","meta_value":"admin"},{"meta_key":"foo","meta_value":"a:2:{i:0;s:1:\"1\";i:1;s:1:\"2\";}"}]
6666
"""
6767

68+
When I run `wp user meta list 1 --format=json --keys=nickname,foo --fields=meta_key,meta_value --unserialize`
69+
Then STDOUT should be JSON containing:
70+
"""
71+
[{"meta_key":"nickname","meta_value":"admin"},{"meta_key":"foo","meta_value":["1","2"]}]
72+
"""
73+
6874
When I run `wp user meta list 1 --keys=nickname,foo`
6975
Then STDOUT should be a table containing rows:
7076
| user_id | meta_key | meta_value |
7177
| 1 | nickname | admin |
7278
| 1 | foo | a:2:{i:0;s:1:"1";i:1;s:1:"2";} |
7379

80+
When I run `wp user meta list 1 --keys=nickname,foo --unserialize`
81+
Then STDOUT should be a table containing rows:
82+
| user_id | meta_key | meta_value |
83+
| 1 | nickname | admin |
84+
| 1 | foo | ["1","2"] |
85+
7486
When I run `wp user meta list admin --keys=nickname,foo`
7587
Then STDOUT should be a table containing rows:
7688
| user_id | meta_key | meta_value |
7789
| 1 | nickname | admin |
7890
| 1 | foo | a:2:{i:0;s:1:"1";i:1;s:1:"2";} |
7991

92+
When I run `wp user meta list admin --keys=nickname,foo --unserialize`
93+
Then STDOUT should be a table containing rows:
94+
| user_id | meta_key | meta_value |
95+
| 1 | nickname | admin |
96+
| 1 | foo | ["1","2"] |
97+
8098
When I run `wp user meta list admin --keys=nickname,foo --orderby=id --order=asc`
8199
Then STDOUT should be a table containing rows:
82100
| user_id | meta_key | meta_value |
83101
| 1 | nickname | admin |
84102
| 1 | foo | a:2:{i:0;s:1:"1";i:1;s:1:"2";} |
85103

104+
When I run `wp user meta list admin --keys=nickname,foo --orderby=id --order=asc --unserialize`
105+
Then STDOUT should be a table containing rows:
106+
| user_id | meta_key | meta_value |
107+
| 1 | nickname | admin |
108+
| 1 | foo | ["1","2"] |
109+
86110
When I run `wp user meta list admin --keys=nickname,foo --orderby=id --order=desc`
87111
Then STDOUT should be a table containing rows:
88112
| user_id | meta_key | meta_value |
89113
| 1 | foo | a:2:{i:0;s:1:"1";i:1;s:1:"2";} |
90114
| 1 | nickname | admin |
91115

116+
When I run `wp user meta list admin --keys=nickname,foo --orderby=id --order=desc --unserialize`
117+
Then STDOUT should be a table containing rows:
118+
| user_id | meta_key | meta_value |
119+
| 1 | foo | ["1","2"] |
120+
| 1 | nickname | admin |
121+
92122
When I run `wp user meta list admin --keys=nickname,foo --orderby=meta_key --order=asc`
93123
Then STDOUT should be a table containing rows:
94124
| user_id | meta_key | meta_value |
95125
| 1 | foo | a:2:{i:0;s:1:"1";i:1;s:1:"2";} |
96126
| 1 | nickname | admin |
97127

128+
When I run `wp user meta list admin --keys=nickname,foo --orderby=meta_key --order=asc --unserialize`
129+
Then STDOUT should be a table containing rows:
130+
| user_id | meta_key | meta_value |
131+
| 1 | foo | ["1","2"] |
132+
| 1 | nickname | admin |
133+
98134
When I run `wp user meta list admin --keys=nickname,foo --orderby=meta_key --order=desc`
99135
Then STDOUT should be a table containing rows:
100136
| user_id | meta_key | meta_value |
101137
| 1 | nickname | admin |
102138
| 1 | foo | a:2:{i:0;s:1:"1";i:1;s:1:"2";} |
103139

140+
When I run `wp user meta list admin --keys=nickname,foo --orderby=meta_key --order=desc --unserialize`
141+
Then STDOUT should be a table containing rows:
142+
| user_id | meta_key | meta_value |
143+
| 1 | nickname | admin |
144+
| 1 | foo | ["1","2"] |
145+
104146
When I run `wp user meta list admin --keys=nickname,foo --orderby=meta_value --order=asc`
105147
Then STDOUT should be a table containing rows:
106148
| user_id | meta_key | meta_value |
107149
| 1 | nickname | admin |
108150
| 1 | foo | a:2:{i:0;s:1:"1";i:1;s:1:"2";} |
109151

152+
When I run `wp user meta list admin --keys=nickname,foo --orderby=meta_value --order=asc --unserialize`
153+
Then STDOUT should be a table containing rows:
154+
| user_id | meta_key | meta_value |
155+
| 1 | nickname | admin |
156+
| 1 | foo | ["1","2"] |
157+
110158
When I run `wp user meta list admin --keys=nickname,foo --orderby=meta_value --order=desc`
111159
Then STDOUT should be a table containing rows:
112160
| user_id | meta_key | meta_value |
113161
| 1 | foo | a:2:{i:0;s:1:"1";i:1;s:1:"2";} |
114162
| 1 | nickname | admin |
115163

164+
When I run `wp user meta list admin --keys=nickname,foo --orderby=meta_value --order=desc --unserialize`
165+
Then STDOUT should be a table containing rows:
166+
| user_id | meta_key | meta_value |
167+
| 1 | foo | ["1","2"] |
168+
| 1 | nickname | admin |
169+
116170

117171
Scenario: Get particular user meta
118172
Given a WP install

src/User_Meta_Command.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,9 @@ public function __construct() {
8282
* - desc
8383
* ---
8484
*
85+
* [--unserialize]
86+
* : Unserialize meta_value output.
87+
*
8588
* ## EXAMPLES
8689
*
8790
* # List user meta

src/WP_CLI/CommandWithMeta.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,10 @@ abstract class CommandWithMeta extends WP_CLI_Command {
6161
* - asc
6262
* - desc
6363
* ---
64+
*
65+
* [--unserialize]
66+
* : Unserialize meta_value output.
67+
*
6468
* @subcommand list
6569
*/
6670
public function list_( $args, $assoc_args ) {
@@ -86,6 +90,10 @@ public function list_( $args, $assoc_args ) {
8690

8791
foreach ( $values as $item_value ) {
8892

93+
if ( Utils\get_flag_value( $assoc_args, 'unserialize' ) ) {
94+
$item_value = maybe_unserialize( $item_value );
95+
}
96+
8997
$items[] = (object) [
9098
"{$this->meta_type}_id" => $object_id,
9199
'meta_key' => $key,

0 commit comments

Comments
 (0)