| Server IP : 14.225.204.176 / Your IP : 216.73.216.252 Web Server : nginx/1.24.0 System : Linux nodejs-ybgk 6.8.0-40-generic #40-Ubuntu SMP PREEMPT_DYNAMIC Fri Jul 5 10:34:03 UTC 2024 x86_64 User : root ( 0) PHP Version : 8.1.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/html/php/langngon.com/wp-content/themes/langngon/lib/ |
Upload File : |
<?php
/**
* Utility functions
*/
// function is_element_empty($element) {
// $element = trim($element);
// return !empty($element);
// }
// function filter_search($query) {
// if ($query->is_search) {
// $query->set('post_type', array( 'post', 'film', 'product' ) );
// }
// return $query;
// };
// add_filter('pre_get_posts', 'filter_search');
//REMOVE CATEGORY
register_activation_hook(__FILE__, 'remove_category_url_refresh_rules');
register_deactivation_hook(__FILE__, 'remove_category_url_deactivate');
/* actions */
add_action('created_category', 'remove_category_url_refresh_rules');
add_action('delete_category', 'remove_category_url_refresh_rules');
add_action('edited_category', 'remove_category_url_refresh_rules');
add_action('init', 'remove_category_url_permastruct');
/* filters */
add_filter('category_rewrite_rules', 'remove_category_url_rewrite_rules');
add_filter('query_vars', 'remove_category_url_query_vars'); // Adds 'category_redirect' query variable
add_filter('request', 'remove_category_url_request'); // Redirects if 'category_redirect' is set
function remove_category_url_refresh_rules()
{
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
function remove_category_url_deactivate()
{
remove_filter('category_rewrite_rules', 'remove_category_url_rewrite_rules'); // We don't want to insert our custom rules again
remove_category_url_refresh_rules();
}
/**
* Removes category base.
*
* @return void
*/
function remove_category_url_permastruct()
{
global $wp_rewrite;
global $wp_version;
if ($wp_version >= 3.4) {
$wp_rewrite->extra_permastructs['category']['struct'] = '%category%';
} else {
$wp_rewrite->extra_permastructs['category'][0] = '%category%';
}
}
/**
* Adds our custom category rewrite rules.
*
* @param array $category_rewrite Category rewrite rules.
*
* @return array
*/
function remove_category_url_rewrite_rules($category_rewrite)
{
$category_rewrite=array();
/* WPML is present: temporary disable terms_clauses filter to get all categories for rewrite */
if (class_exists('Sitepress')) {
global $sitepress;
remove_filter('terms_clauses', array($sitepress, 'terms_clauses'));
$categories = get_categories(array('hide_empty' => false, '_icl_show_all_langs' => true));
add_filter('terms_clauses', array($sitepress, 'terms_clauses'));
} else {
$categories = get_categories(array('hide_empty' => false));
}
foreach($categories as $category) {
$category_nicename = $category->slug;
if ( $category->parent == $category->cat_ID ) {
$category->parent = 0;
} elseif ($category->parent != 0 ) {
$category_nicename = get_category_parents( $category->parent, false, '/', true ) . $category_nicename;
}
$category_rewrite['('.$category_nicename.')/(?:feed/)?(feed|rdf|rss|rss2|atom)/?$'] = 'index.php?category_name=$matches[1]&feed=$matches[2]';
$category_rewrite['('.$category_nicename.')/page/?([0-9]{1,})/?$'] = 'index.php?category_name=$matches[1]&paged=$matches[2]';
$category_rewrite['('.$category_nicename.')/?$'] = 'index.php?category_name=$matches[1]';
}
// Redirect support from Old Category Base
global $wp_rewrite;
$old_category_base = get_option('category_base') ? get_option('category_base') : 'category';
$old_category_base = trim($old_category_base, '/');
$category_rewrite[$old_category_base.'/(.*)$'] = 'index.php?category_redirect=$matches[1]';
return $category_rewrite;
}
function remove_category_url_query_vars($public_query_vars)
{
$public_query_vars[] = 'category_redirect';
return $public_query_vars;
}
/**
* Handles category redirects.
*
* @param $query_vars Current query vars.
*
* @return array $query_vars, or void if category_redirect is present.
*/
function remove_category_url_request($query_vars)
{
if(isset($query_vars['category_redirect'])) {
$catlink = trailingslashit(get_option( 'home' )) . user_trailingslashit( $query_vars['category_redirect'], 'category' );
status_header(301);
header("Location: $catlink");
exit();
}
return $query_vars;
}