मैं एक प्लगइन बना रहा हूं और मैं सभी स्क्रिप्ट और सीएसएस का उपयोग अन्य प्लगइन्स की सूची प्राप्त करना चाहता हूं।
यह मेरा कार्य है:
function crunchify_print_scripts_styles() {
$result = [];
$result['scripts'] = [];
$result['styles'] = [];
// Print all loaded Scripts
global $wp_scripts;
foreach( $wp_scripts->queue as $script ) :
$result['scripts'][] = $wp_scripts->registered[$script]->src . ";";
endforeach;
// Print all loaded Styles (CSS)
global $wp_styles;
foreach( $wp_styles->queue as $style ) :
$result['styles'][] = $wp_styles->registered[$style]->src . ";";
endforeach;
return $result;
}
add_action( 'wp_enqueue_scripts', 'crunchify_print_scripts_styles');
मैं एक वैरिएबल के अंदर लौटा हुआ मूल्य प्राप्त करना चाहता हूं।
मैंने यह कोशिश की:
$toto = do_action( 'crunchify_print_scripts_styles' );
var_dump( $toto );
और यह मेरा परिणाम है:
NULL
यदि मैं echo
प्रत्येक foreach
लूप के अंदर लिखता हूं , तो मुझे सही परिणाम मिलते हैं, लेकिन इन मूल्यों को एक चर के अंदर कैसे संग्रहीत किया जाए?
[संपादित करें]
एक प्लगइन के अंदर मेरा कोड जो भी काम नहीं कर रहा है
/**
* Get all scripts and styles from Wordpress
*/
function print_scripts_styles() {
$result = [];
$result['scripts'] = [];
$result['styles'] = [];
// Print all loaded Scripts
global $wp_scripts;
foreach( $wp_scripts->queue as $script ) :
$result['scripts'][] = $wp_scripts->registered[$script]->src . ";";
endforeach;
// Print all loaded Styles (CSS)
global $wp_styles;
foreach( $wp_styles->queue as $style ) :
$result['styles'][] = $wp_styles->registered[$style]->src . ";";
endforeach;
return $result;
}
add_action( 'wp_head', 'wp_rest_assets_init');
/**
* Init JSON REST API Assets routes.
*
* @since 1.0.0
*/
function wp_rest_assets_init() {
$all_the_scripts_and_styles = print_scripts_styles();
if ( ! defined( 'JSON_API_VERSION' ) &&
! in_array( 'json-rest-api/plugin.php', get_option( 'active_plugins' ) ) ) {
$class = new WP_REST_Assets();
$class::$scriptsAndStyles = $all_the_scripts_and_styles;
add_filter( 'rest_api_init', array( $class, 'register_routes' ) );
} else {
$class = new WP_JSON_Menus();
add_filter( 'json_endpoints', array( $class, 'register_routes' ) );
}
}
add_action( 'init', 'wp_rest_assets_init' );
apply_filters
? आप उससे आसानी से रिटर्न वैल्यू प्राप्त कर सकते हैं।
do_action
एक परिणाम वापस नहीं करता है, और इसके अलावा, कार्रवाई पहले ही हो चुकी हैwp_enqueue_scripts
... बस एक वैश्विक बनाने के लिए आसान है, जैसे।global $crunchifyenqueued; $crunchifyenqueued = $result;
फिर चर का उपयोग करने के लिए अपने बाद के फ़ंक्शन में वैश्विक कॉल करें।