Error: Missing "name" attribute in the shortcode.'; } $shortcode = '[' . $atts['name']; // Add any attributes to the shortcode foreach ($atts as $attribute => $value) { if ($attribute !== 'name') { $shortcode .= ' ' . $attribute . '="' . $value . '"'; } } $shortcode .= ']'; if ($content) { // If the shortcode has inner content, display it. $output = $content; } else { // Otherwise, display the actual shortcode output with the 'aio-sn' class. $output = '' . $shortcode . ''; } return $output; } add_shortcode('sn', 'display_aio_sn_shortcode'); /** * Add CSS class 'aio-style' to all shortcodes. */ function aiosc_add_shortcode_css_class($content) { // Add the 'dateupdater-style' class to all shortcodes $pattern = '/\[([^\]]+)\]/'; $replacement = '[$1]'; return preg_replace($pattern, $replacement, $content); } add_filter('the_content', 'aiosc_add_shortcode_css_class'); // Include all PHP files in a given folder and its subdirectories function include_files_recursively($folder) { $files = glob($folder . '/*.php'); foreach ($files as $file) { require_once $file; } $subdirectories = glob($folder . '/*', GLOB_ONLYDIR); foreach ($subdirectories as $subdirectory) { include_files_recursively($subdirectory); } } // Specify the root folder $shortcode_root_folder = plugin_dir_path(__FILE__) . "includes/shortcodes/"; // Include all PHP files from the root folder and its subdirectories include_files_recursively($shortcode_root_folder); require_once plugin_dir_path(__FILE__) . "includes/custom-plugins/rankmath.php"; // Include shortcode support files require_once plugin_dir_path(__FILE__) . "admin/aiosc-support.php"; require_once plugin_dir_path(__FILE__) . "admin/main-settings.php"; require_once plugin_dir_path(__FILE__) . "includes/options/download-zip.php"; require_once plugin_dir_path(__FILE__) . "includes/options/duplicator.php"; require_once plugin_dir_path(__FILE__) .'/includes/options/custom-css.php'; require_once plugin_dir_path(__FILE__) .'/includes/options/login-url.php'; require_once plugin_dir_path(__FILE__) .'/includes/options/search-excluder.php'; // Shortcodes Settings In Plugins add_filter("plugin_action_links_aio-shortcodes/aio-shortcodes.php", "aiosc_settings_link"); function aiosc_settings_link($links) { // Create the "Shortcode List" link in bold. $shortcode_list_link = '' . __("Shortcodes List") . ""; // Create the "Settings" link. $settings_link = '' . __("Settings") . ""; // Find the position of the "Deactivate" link in the $links array. $deactivate_index = array_search("deactivate", array_keys($links)); // Insert the "Shortcode List" link right before the "Deactivate" link. if (false !== $deactivate_index) { array_splice($links, $deactivate_index, 0, $settings_link); array_unshift($links, $shortcode_list_link); } return $links; } function enqueue_admin_styles() { wp_enqueue_script('aio-admin-script', plugin_dir_url(__FILE__). 'assets/js/aio-admin-js.js', array('jquery'), null); wp_enqueue_style('aio-admin-style', plugin_dir_url(__FILE__) . 'assets/css/aio-admin-style.css', array(), 'all'); } add_action('admin_enqueue_scripts', 'enqueue_admin_styles'); /** * Activate the plugin. */ function aio_plugin_activate() { add_option('aio_login_url_slug'); flush_rewrite_rules(); } register_activation_hook( __FILE__, 'aio_plugin_activate' ); /** * Deactivation hook. */ function aio_plugin_deactivate() { delete_option('aio_login_url_slug'); flush_rewrite_rules(); } register_deactivation_hook( __FILE__, 'aio_plugin_deactivate' ); add_action( 'customize_preview_init', 'aiosc_css_live_preview' ); /** * Add our live preview. * * @since 1.0 */ function aiosc_css_live_preview() { wp_enqueue_script( 'aio-css-live-preview', trailingslashit( plugin_dir_url(__FILE__) ) . 'assets/js/live-preview.js', array( 'customize-preview' ), null, true ); }