NEXT craftinamerica.org. Base setup for headless wordpress https://www.craftinamerica.org
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. $GLOBALS['_scb_data'] = array( 61, __FILE__, array(
  3. 'scbUtil',
  4. 'scbOptions',
  5. 'scbForms',
  6. 'scbTable',
  7. 'scbWidget',
  8. 'scbAdminPage',
  9. 'scbBoxesPage',
  10. 'scbPostMetabox',
  11. 'scbCron',
  12. 'scbHooks',
  13. ) );
  14. if ( ! class_exists( 'scbLoad4' ) ) :
  15. /**
  16. * The main idea behind this class is to load the most recent version of the scb classes available.
  17. *
  18. * It waits until all plugins are loaded and then does some crazy hacks to make activation hooks work.
  19. */
  20. class scbLoad4 {
  21. private static $candidates = array();
  22. private static $classes;
  23. private static $callbacks = array();
  24. private static $loaded;
  25. static function init( $callback = '' ) {
  26. list( $rev, $file, $classes ) = $GLOBALS['_scb_data'];
  27. self::$candidates[ $file ] = $rev;
  28. self::$classes[ $file ] = $classes;
  29. if ( ! empty( $callback ) ) {
  30. self::$callbacks[ $file ] = $callback;
  31. add_action( 'activate_plugin', array( __CLASS__, 'delayed_activation' ) );
  32. }
  33. if ( did_action( 'plugins_loaded' ) ) {
  34. self::load();
  35. } else {
  36. add_action( 'plugins_loaded', array( __CLASS__, 'load' ), 9, 0 );
  37. }
  38. }
  39. public static function delayed_activation( $plugin ) {
  40. $plugin_dir = dirname( $plugin );
  41. if ( '.' == $plugin_dir ) {
  42. return;
  43. }
  44. foreach ( self::$callbacks as $file => $callback ) {
  45. if ( dirname( dirname( plugin_basename( $file ) ) ) == $plugin_dir ) {
  46. self::load( false );
  47. call_user_func( $callback );
  48. do_action( 'scb_activation_' . $plugin );
  49. break;
  50. }
  51. }
  52. }
  53. public static function load( $do_callbacks = true ) {
  54. arsort( self::$candidates );
  55. $file = key( self::$candidates );
  56. $path = dirname( $file ) . '/';
  57. foreach ( self::$classes[ $file ] as $class_name ) {
  58. if ( class_exists( $class_name ) ) {
  59. continue;
  60. }
  61. $fpath = $path . substr( $class_name, 3 ) . '.php';
  62. if ( file_exists( $fpath ) ) {
  63. include $fpath;
  64. self::$loaded[] = $fpath;
  65. }
  66. }
  67. if ( $do_callbacks ) {
  68. foreach ( self::$callbacks as $callback ) {
  69. call_user_func( $callback );
  70. }
  71. }
  72. }
  73. static function get_info() {
  74. arsort( self::$candidates );
  75. return array( self::$loaded, self::$candidates );
  76. }
  77. }
  78. endif;
  79. if ( ! function_exists( 'scb_init' ) ) :
  80. function scb_init( $callback = '' ) {
  81. scbLoad4::init( $callback );
  82. }
  83. endif;