Opened 9 years ago
Last modified 8 years ago
#42423 new defect (bug)
Warning in redirect_guess_404_permalink if $query->post_type is an array instead of a string
| Reported by: | augustuswm | Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | Awaiting Review |
| Component: | Canonical | Version: | 4.8.3 |
| Severity: | normal | Keywords: | |
| Cc: | Focuses: |
Description
I am not familiar enough with WordPress to know if this is an issue or intended.
redirect_guess_404_permalink has a block that looks like:
wp-includes/canonical.php:594
// if any of post_type, year, monthnum, or day are set, use them to refine the query if ( get_query_var('post_type') ) $where .= $wpdb->prepare(" AND post_type = %s", get_query_var('post_type')); else $where .= " AND post_type IN ('" . implode( "', '", get_post_types( array( 'public' => true ) ) ) . "')";
This works in the case that post_type is a single value, but if it has been changed to an array of values then this looks to trigger the warning:
wp-includes/wp-db.php:1353
_doing_it_wrong( 'wpdb::prepare', __( 'The query only expected one placeholder, but an array of multiple placeholders was sent.' ), '4.9.0' );
Attachments (2)
Change History (4)
#2
@
8 years ago
- Summary redirect_guess_404_permalink passes array of post types with single placeholder → Warning in redirect_guess_404_permalink if $query->post_type is an array instead of a string
Note:
See TracTickets
for help on using tickets.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)
I can confirm this error. According to WP_Query class, post_type could be a string or an array of strings. However, these lines only support the single-string case.