Skip to content

Commit a94e53e

Browse files
author
rajkp
committed
implement exclude revision flag to remove revision results from the db search
1 parent bf741eb commit a94e53e

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

src/DB_Command.php

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1264,6 +1264,9 @@ public function prefix() {
12641264
* [--format=<format>]
12651265
* : Render output in a particular format.
12661266
*
1267+
* [--exclude_revisions]
1268+
* : Exclude revisions from the search.
1269+
*
12671270
* The percent color codes available are:
12681271
*
12691272
* | Code | Color
@@ -1388,6 +1391,7 @@ public function search( $args, $assoc_args ) {
13881391
$stats = Utils\get_flag_value( $assoc_args, 'stats', false );
13891392
$fields = Utils\get_flag_value( $assoc_args, 'fields' );
13901393
$format = Utils\get_flag_value( $assoc_args, 'format' );
1394+
$exclude_revisions = Utils\get_flag_value( $assoc_args, 'exclude_revisions', false );
13911395

13921396
$column_count = 0;
13931397
$row_count = 0;
@@ -1452,13 +1456,24 @@ public function search( $args, $assoc_args ) {
14521456
}
14531457

14541458
foreach ( $text_columns as $column ) {
1455-
$column_sql = self::esc_sql_ident( $column );
1459+
$column_sql = self::esc_sql_ident( $column );
1460+
$post_type_sql = self::esc_sql_ident( 'post_type' );
14561461
if ( $regex ) {
1457-
// phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- Escaped through esc_sql_ident/esc_like.
1458-
$results = $wpdb->get_results( "SELECT {$primary_key_sql}{$column_sql} FROM {$table_sql}" );
1462+
if ( $exclude_revisions && 'wp_posts' === $table ) {
1463+
// phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- Escaped through esc_sql_ident/esc_like.
1464+
$results = $wpdb->get_results( "SELECT {$primary_key_sql}{$column_sql} FROM {$table_sql} WHERE {$post_type_sql} NOT IN ( 'revision' )" );
1465+
} else {
1466+
// phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- Escaped through esc_sql_ident/esc_like.
1467+
$results = $wpdb->get_results( "SELECT {$primary_key_sql}{$column_sql} FROM {$table_sql}" );
1468+
}
14591469
} else {
1460-
// phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- Escaped through esc_sql_ident/esc_like.
1461-
$results = $wpdb->get_results( $wpdb->prepare( "SELECT {$primary_key_sql}{$column_sql} FROM {$table_sql} WHERE {$column_sql} LIKE %s;", $esc_like_search ) );
1470+
if ( $exclude_revisions && 'wp_posts' === $table ) {
1471+
// phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- Escaped through esc_sql_ident/esc_like.
1472+
$results = $wpdb->get_results( $wpdb->prepare( "SELECT {$primary_key_sql}{$column_sql} FROM {$table_sql} WHERE {$column_sql} LIKE %s AND {$post_type_sql} NOT IN ( 'revision' )", $esc_like_search ) );
1473+
} else {
1474+
// phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- Escaped through esc_sql_ident/esc_like.
1475+
$results = $wpdb->get_results( $wpdb->prepare( "SELECT {$primary_key_sql}{$column_sql} FROM {$table_sql} WHERE {$column_sql} LIKE %s;", $esc_like_search ) );
1476+
}
14621477
}
14631478
if ( $results ) {
14641479
$row_count += count( $results );

0 commit comments

Comments
 (0)