Opened 7 years ago
Last modified 7 years ago
#49296 new enhancement
Split up WP_Query into more manageable classes
| Reported by: | madpeter | Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | Awaiting Review |
| Component: | Query | Version: | 5.3.2 |
| Severity: | normal | Keywords: | |
| Cc: | Focuses: |
Description
as it stands the WP_query class file is over 4000 lines
and with a single function that get_posts that on its own is over 1200 lines.
Suggestion
Split the class into its own folder with
"vars","get","set","deprecated","process","comments","posts","get_posts"
as abstract classes
example
<?php abstract class wp_query_vars { ..... } abstract class wp_query_get extends wp_query_vars { ..... } ?>
and then adjust the class-wp-query.php to load the split class
<?php /** * Query API: WP_Query class * * @package WordPress * @subpackage Query * @since 4.7.0 */ $loader = array("vars","get","set","deprecated","process","comments","posts","get_posts"); foreach($loader as $loadclass) { require_once("wp-query/wp_query_".$loadclass.".php"); } class WP_Query extends wp_query_get_posts { /** * Constructor. * * Sets up the WordPress query, if parameter is not empty. * * @since 1.5.0 * * @param string|array $query URL query string or array of vars. */ public function __construct( $query = '' ) { if ( ! empty( $query ) ) { $this->query( $query ); } } } }} after this is done other improvements should be made to the get_posts function.
Change History (2)
Note:
See TracTickets
for help on using tickets.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)
Related: #49149