[wp-trac] [WordPress Trac] #28364: WordPress Entry Points (wp-load.php occurrences)

WordPress Trac noreply at wordpress.org
Mon May 26 12:26:11 UTC 2014


#28364: WordPress Entry Points (wp-load.php occurrences)
----------------------------+------------------------------
 Reporter:  szepe.viktor    |       Owner:
     Type:  defect (bug)    |      Status:  new
 Priority:  normal          |   Milestone:  Awaiting Review
Component:  Bootstrap/Load  |     Version:  3.9.1
 Severity:  normal          |  Resolution:
 Keywords:                  |     Focuses:
----------------------------+------------------------------
Changes (by SergeyBiryukov):

 * component:  General => Bootstrap/Load


Old description:

> I was looking for entry point by searching for wp-load.php for plugin
> refactoring. I mean conditionally use require().
>
> 1. There are easy to identify entry points like admin-ajax.php but there
> are no defines e.g in async-upload.php, wp-loging.php or wp-comments-
> post.php
>
> 2. wp-trackback.php uses a strange way to detect the core `if
> (empty($wp))`
>
> 3. xmlrpc.php uses alone `include()` all others `require()`
>
> 4. How to distinguish between admin.php and admin-post.php?
>

> === Proposal ===
>
> - There should be a uniform way requiring wp-load.
> - All entry point should be distinguished by '''different''' defines
>
> == List of entry points and ways to detect them ==
>
> 1. frontend: wp-blog-header.php:12 {{{!is_admin()}}}
> 1. admin GET request: wp-admin/admin.php:30 {{{is_admin()}}}
> 1. admin POST request: wp-admin/admin-post.php:15 {{{is_admin()}}}
> 1. admin upload: wp-admin/async-upload.php:16
> {{{@$_SERVER['SCRIPT_FILENAME'] === ABSPATH . 'wp-admin/async-
> upload.php'}}}
> 1. AJAX call: wp-admin/admin-ajax.php:20 {{{defined('DOING_AJAX')
> && DOING_AJAX}}}
> 1. WordPress cron webserver/CLI: wp-cron.php:26 {{{defined('DOING_CRON')
> && DOING_CRON}}} {{{php_sapi_name() === 'cli'}}}
> 1. XML-RPC protocol: xmlrpc.php:29 {{{defined('XMLRPC_REQUEST')
> && XMLRPC_REQUEST}}}
>
> === Frontend low priority ===
>
> 1. wp-comments-post.php:16 {{{@$_SERVER['SCRIPT_FILENAME'] === ABSPATH .
> 'wp-comments-post.php'}}}
> 1. wp-trackback.php:12 {{{1 === get_query_var('tb')}}}
>
> === Dashboard low priority ===
>
> 1. wp-login.php:12
> 1. wp-signup.php:4
> 1. wp-activate.php:12
> 1. wp-mail.php:11
>
> === Exclude from profiling ===
>
> 1. wp-links-opml.php:15
> 1. wp-includes/ms-files.php:12
> 1. wp-includes/js/tinymce/wp-mce-help.php:9
> 1. wp-admin/install.php:36
> 1. wp-admin/install-helper.php:39
> 1. wp-admin/upgrade.php:18
> 1. wp-admin/maint/repair.php:10
> 1. wp-admin/moderation.php:10
>
> Total: '''21 entry points''' as of version 3.9.1
>
> [https://github.com/szepeviktor/WPHW/blob/master/wp-entry-points.md from
> WPHW]

New description:

 I was looking for entry point by searching for wp-load.php for plugin
 refactoring. I mean conditionally use require().

 1. There are easy to identify entry points like admin-ajax.php but there
 are no defines e.g in async-upload.php, wp-loging.php or wp-comments-
 post.php

 2. wp-trackback.php uses a strange way to detect the core `if
 (empty($wp))`

 3. xmlrpc.php uses alone `include()` all others `require()`

 4. How to distinguish between admin.php and admin-post.php?


 === Proposal ===

 - There should be a uniform way requiring wp-load.
 - All entry point should be distinguished by '''different''' defines

 == List of entry points and ways to detect them ==

 1. frontend: wp-blog-header.php:12 {{{!is_admin()}}}
 1. admin GET request: wp-admin/admin.php:30 {{{is_admin()}}}
 1. admin POST request: wp-admin/admin-post.php:15 {{{is_admin()}}}
 1. admin upload: wp-admin/async-upload.php:16
 {{{@$_SERVER['SCRIPT_FILENAME'] === ABSPATH . 'wp-admin/async-
 upload.php'}}}
 1. AJAX call: wp-admin/admin-ajax.php:20 {{{defined('DOING_AJAX') &&
 DOING_AJAX}}}
 1. WordPress cron webserver/CLI: wp-cron.php:26 {{{defined('DOING_CRON')
 && DOING_CRON}}} {{{php_sapi_name() === 'cli'}}}
 1. XML-RPC protocol: xmlrpc.php:29 {{{defined('XMLRPC_REQUEST') &&
 XMLRPC_REQUEST}}}

 === Frontend low priority ===

 1. wp-comments-post.php:16 {{{@$_SERVER['SCRIPT_FILENAME'] === ABSPATH .
 'wp-comments-post.php'}}}
 1. wp-trackback.php:12 {{{1 === get_query_var('tb')}}}

 === Dashboard low priority ===

 1. wp-login.php:12
 1. wp-signup.php:4
 1. wp-activate.php:12
 1. wp-mail.php:11

 === Exclude from profiling ===

 1. wp-links-opml.php:15
 1. wp-includes/ms-files.php:12
 1. wp-includes/js/tinymce/wp-mce-help.php:9
 1. wp-admin/install.php:36
 1. wp-admin/install-helper.php:39
 1. wp-admin/upgrade.php:18
 1. wp-admin/maint/repair.php:10
 1. wp-admin/moderation.php:10

 Total: '''21 entry points''' as of version 3.9.1

 [https://github.com/szepeviktor/WPHW/blob/master/wp-entry-points.md from
 WPHW]

--

--
Ticket URL: <https://core.trac.wordpress.org/ticket/28364#comment:1>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list