Server IP : 172.67.214.6 / Your IP : 216.73.216.73 Web Server : LiteSpeed System : Linux premium900.web-hosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 User : redwjova ( 1790) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/redwjova/clevorio.com/wp-content/themes/smart-mag/inc/ |
Upload File : |
<?php /** * Theme functionalities related to search. */ class Bunyad_Theme_Search { public function __construct() { // Perform the after_setup_theme. add_action('after_setup_theme', [$this, 'init'], 12); } public function init() { // Add support for live search. add_action('wp_ajax_bunyad_live_search', [$this, 'live_search']); add_action('wp_ajax_nopriv_bunyad_live_search', [$this, 'live_search']); // Fix WPML search - WPML doesn't select the archive page but uses page_on_front instead add_filter('template_include', [$this, 'fix_wpml_search'], 11); // Limit search to posts? if (Bunyad::options()->search_posts_only) { add_filter('pre_get_posts', [$this, 'limit_search']); } } /** * Action callback: AJAX handler for live search results */ public function live_search() { get_template_part('partials/live-search'); // terminate ajax request wp_die(); } /** * Filter callback: WPML doesn't select correct template for archives, modify at template_include * * @param string $template * @return string */ public function fix_wpml_search($template = '') { if (!defined('ICL_LANGUAGE_CODE') || !function_exists('icl_get_default_language')) { return $template; } if (is_search() /* OR is_archive() */) { return get_query_template('index'); } return $template; } /** * Filter callback: Fix search by limiting to posts * * @param object $query */ public function limit_search($query) { if (!$query->is_search || !$query->is_main_query()) { return $query; } // Ignore if on bbpress and woocommerce. // is_woocommerce() cause 404 due to using get_queried_object() if ( is_admin() || (function_exists('is_bbpress') && is_bbpress()) || (function_exists('is_shop') && is_shop()) ) { return $query; } // limit it to posts $query->set('post_type', 'post'); return $query; } } // init and make available in Bunyad::get('search') Bunyad::register('search', [ 'class' => 'Bunyad_Theme_Search', 'init' => true ]);