如果我们限制我们的产量wp post list
, 那么这里有一种搜索%test%
在发布的帖子标题中:
wp post list --ignore_sticky_posts=1 --post__in=$(wp db query \'SELECT ID FROM wp_posts WHERE post_title LIKE "%test%" AND post_status="publish" AND post_type="post"\' --skip-column-names | paste -s -d \',\' - )
以下是展开视图:
wp post list #<-- the first wp command
--ignore_sticky_posts=1 #<-- get rid of stickies
--post__in= #<-- only specific post IDs
$(wp db query #<-- the second wp command
\'SELECT ID #<-- only get the post IDs
FROM wp_posts #<-- table name, adjust the prefix!
WHERE post_title LIKE "%test%" #<-- title search word
AND post_status="publish" #<-- published
AND post_type="post"\' #<-- posts
--skip-column-names #<-- Skip the ID column name
| paste -s -d \',\' - #<-- csv
)
Update: 对于确切的情况,可以替换post_title LIKE "%test%"
具有post_title = "test"
.
我们可以使用--skip-column-names
要删除ID
来自内部查询输出的列名,而不是使用sed \'s/^ID,//\'
删除它。如果我们能--format=csv
而不是使用| paste -s -d \',\' -
, 但目前在wp db query
命令
还有wp db search
command 但目前我们只能将其限制在给定的表中,如wp db search test wp_posts
, 但不是给定的表列。例如,可以尝试wp db search test wp_posts --one_line | grep wp_posts:post_title
, i、 e.搜索整个wp_posts
表并筛选包含wp_posts:post_title
, 幸亏--one_line
. 但请注意,这是先搜索整个表!
还有wp shell
这将提示wp-cli shell,在这里可以访问WordPress类和函数,如WP_Query
和get_page_by_title()
.
也可以跑步wp eval
command 以及wp evail-file
command 运行给定的php代码。下面是一个示例:wp eval \'print_r( get_page_by_title( "test" ) );