使用wp-cli可以不按标题查询页面吗?

时间:2015-08-25 作者:Kit Sunde

所有这些都有相同的作用:

wp post list --post_type=page
wp post list --post_type=page --post_title=dfdsfds
wp post list --post_type=page --title=sdfdsf
如何按标题查询帖子?相比之下,使用--name 工作正常:

wp post list --post_type=page --name=sdfdsf

1 个回复
SO网友:birgire

如果我们限制我们的产量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_Queryget_page_by_title().

也可以跑步wp eval command 以及wp evail-file command 运行给定的php代码。下面是一个示例:wp eval \'print_r( get_page_by_title( "test" ) );

相关推荐

WP-CLI插件安装导致PHP致命错误-在不在对象上下文中时使用$This

运行时sudo wp install plugin pluginname --allowroot它会导致错误:PHP致命错误:未捕获错误:在/var/www/html/wp-content/plugins/pluginname/blocks中不在对象上下文中时使用$this。菲律宾比索:89我们有一个自定义插件,其中包含以下内容: class Block{ public static function Run() { add_action(\'e