PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 9.5
Jetpack – WP Security, Backup, Speed, & Growth v9.5
16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 All 501 releases
← All changes | require-lib.php +25 -16 9.4.49.5 View file →
@@ -1,11 +1,7 @@
1 1 <?php
2 2 function jetpack_require_lib( $slug ) {
3 - if ( !preg_match( '|^[a-z0-9/_.-]+$|i', $slug ) ) {
4 - trigger_error( "Cannot load a library with invalid slug $slug.", E_USER_ERROR );
5 - return;
6 - }
7 - $basename = basename( $slug );
3 + static $loaded = array();
8 4
9 5 if ( defined( 'ABSPATH' ) && ! defined( 'WP_CONTENT_DIR' ) ) {
10 6 define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' ); // no trailing slash, full paths only - WP_CONTENT_URL is defined further down
11 7 }
@@ -19,17 +15,30 @@
19 15 *
20 16 * @param string $lib_dir Path to the library directory.
21 17 */
22 18 $lib_dir = apply_filters( 'jetpack_require_lib_dir', $lib_dir );
23 - $choices = array(
24 - "$lib_dir/$slug.php",
25 - "$lib_dir/$slug/0-load.php",
26 - "$lib_dir/$slug/$basename.php",
27 - );
28 - foreach( $choices as $file_name ) {
29 - if ( is_readable( $file_name ) ) {
30 - require_once $file_name;
31 - return;
32 - }
19 +
20 + $loaded_key = "{$lib_dir}{$slug}";
21 + if ( ! empty( $loaded[ $loaded_key ] ) ) {
22 + return;
33 23 }
34 - trigger_error( "Cannot find a library with slug $slug.", E_USER_ERROR );
24 +
25 + $loaded[ $loaded_key ] = true;
26 +
27 + $file_name = "$lib_dir/$slug.php";
28 + if ( is_readable( $file_name ) ) {
29 + require_once $file_name;
30 +
31 + return;
32 + }
33 +
34 + $file_name = "$lib_dir/$slug/0-load.php";
35 + if ( is_readable( $file_name ) ) {
36 + require_once $file_name;
37 +
38 + return;
39 + }
40 +
41 + $basename = basename( $slug );
42 + $file_name = "$lib_dir/$slug/$basename.php";
43 + require_once $file_name;
35 44 }