HEX
Server: nginx/1.22.0
System: Linux iZuf6jdxbygmf6cco977lcZ 5.10.84-10.4.al8.x86_64 #1 SMP Tue Apr 12 12:31:07 CST 2022 x86_64
User: root (0)
PHP: 7.4.29
Disabled: passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_restore,dl,readlink,symlink,popepassthru,stream_socket_server,fsocket,popen
Upload Files
File: /data/wwwroot/wordpress/wp-content/themes/yantou/functions/func_noplugin.php
<?php
/**************************无插件**************************/
##	添加友情链接
add_filter( 'pre_option_link_manager_enabled', '__return_true' );

##	注册导航菜单
function Bind_register_nav_menus(){
  register_nav_menus(array(
  	'pc-nav' => __('电脑端导航'),
	'm-nav' => __('手机端导航'),
  	'footer-nav' => __('底部导航'),
  ));
}
add_action( 'init', 'Bind_register_nav_menus' );

##	分类目录选择分类模板
class Select_Category_Template
{
    public function __construct()
    {
        add_filter('category_template', array($this,'get_custom_category_template' ));
        add_action('edit_category_form_fields', array($this,'category_template_meta_box'));
        add_action('category_add_form_fields', array( &$this, 'category_template_meta_box'));
        add_action('created_category', array( &$this, 'save_category_template' ));
        add_action('edited_category', array($this,'save_category_template'));
        do_action('Custom_Category_Template_constructor', $this);
    }
    public function category_template_meta_box($tag)
    {
        $t_id = $tag->term_id;
        $cat_meta = get_option("category_templates");
        $template = isset($cat_meta[$t_id]) ? $cat_meta[$t_id] : false; ?>
		<tr class="form-field">
			<th scope="row" valign="top"><label for="cat_Image_url"><?php _e('Category Template'); ?></label></th>
			<td>
				<select name="cat_template" id="cat_template">
				<option value='default'><?php _e('Default Template'); ?></option>
				<?php page_template_dropdown($template); ?>
				</select>
				<br />
				<span class="description"><?php _e('为此分类选择一个模板'); ?></span>
			</td>
		</tr>
		<?php do_action('Custom_Category_Template_ADD_FIELDS', $tag);
    }
    public function save_category_template($term_id)
    {
        if (isset($_POST['cat_template'])) {
            $cat_meta = get_option("category_templates");
            $cat_meta[$term_id] = $_POST['cat_template'];
            update_option("category_templates", $cat_meta);
            do_action('Custom_Category_Template_SAVE_FIELDS', $term_id);
        }
    }
    public function get_custom_category_template($category_template)
    {
        $cat_ID = absint(get_query_var('cat'));
        $cat_meta = get_option('category_templates');
        if (isset($cat_meta[$cat_ID]) && $cat_meta[$cat_ID] != 'default') {
            $temp = locate_template($cat_meta[$cat_ID]);
            if (!empty($temp)) {
                return apply_filters("Custom_Category_Template_found", $temp);
            }
        }
        return $category_template;
    }
}
$cat_template = new Select_Category_Template();

##	thumbnail缩略图
if (function_exists('add_theme_support')) {
    add_theme_support('post-thumbnails', array( 'post', 'page' ));
}

##	中文名图片上传改名
function tin_custom_upload_name($file)
{
    if (preg_match('/[一-龥]/u', $file['name'])):
    $ext=ltrim(strrchr($file['name'], '.'), '.');
    $file['name']=preg_replace('', strtolower($_SERVER['SERVER_NAME'])).'_'.date('YmdHis').'.'.$ext;
    endif;
    return $file;
}
add_filter('wp_handle_upload_prefilter', 'tin_custom_upload_name', 5, 1);

##	移除url中Category
register_activation_hook(__FILE__, 'no_category_base_refresh_rules');
add_action('created_category', 'no_category_base_refresh_rules');
add_action('edited_category', 'no_category_base_refresh_rules');
add_action('delete_category', 'no_category_base_refresh_rules');
function no_category_base_refresh_rules()
{
    global $wp_rewrite;
    $wp_rewrite -> flush_rules();
}
register_deactivation_hook(__FILE__, 'no_category_base_deactivate');
function no_category_base_deactivate()
{
    remove_filter('category_rewrite_rules', 'no_category_base_rewrite_rules');
    no_category_base_refresh_rules();
}
add_action('init', 'no_category_base_permastruct');
function no_category_base_permastruct()
{
    global $wp_rewrite, $wp_version;
    if (version_compare($wp_version, '3.4', '<')) {
        $wp_rewrite -> extra_permastructs['category'][0] = '%category%';
    } else {
        $wp_rewrite -> extra_permastructs['category']['struct'] = '%category%';
    }
}
add_filter('category_rewrite_rules', 'no_category_base_rewrite_rules');
function no_category_base_rewrite_rules($category_rewrite)
{
    $category_rewrite = array();
    $categories = get_categories(array('hide_empty' => false));
    foreach ($categories as $category) {
        $category_nicename = $category -> slug;
        if ($category -> parent == $category -> cat_ID) {// recursive recursion
            $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]';
    }
    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;
}
add_filter('query_vars', 'no_category_base_query_vars');
function no_category_base_query_vars($public_query_vars)
{
    $public_query_vars[] = 'category_redirect';
    return $public_query_vars;
}
add_filter('request', 'no_category_base_request');
function no_category_base_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;
}

##	增加文章模板功能 该代码 针对 4.7下兼容处理
function makewp_exclude_page_templates($post_templates)
{
    if (version_compare($GLOBALS['wp_version'], '4.7', '<')) {
        unset($post_templates['templates/my-full-width-post-template.php']);
    }
    return $post_templates;
}
add_filter('theme_page_templates', 'makewp_exclude_page_templates');

## 分页功能 $range 默认最大页码 默认获取后台设置分页数
function get_pagenavi($range = 4)
{
    global $paged,$wp_query;
    if (!$max_page) {
        $max_page = $wp_query->max_num_pages;
    }
    if ($max_page >1) {
        if (!$paged) {
            $paged = 1;
        }
        echo "<li>";
        previous_posts_link('<');
        echo"</li>";
        if ($max_page >$range) {
            if ($paged <$range) {
                for ($i = 1; $i <= ($range +1); $i++) {
                    echo "<li><a href='".get_pagenum_link($i) ."'";
                    if ($i==$paged) {
                        echo " class='current'";
                    }
                    echo ">$i</a></li>";
                }
            } elseif ($paged >= ($max_page -ceil(($range/2)))) {
                for ($i = $max_page -$range;$i <= $max_page;$i++) {
                    echo "<li><a href='".get_pagenum_link($i) ."'";
                    if ($i==$paged) {
                        echo " class='current'";
                    }
                    echo ">$i</a></li>";
                }
            } elseif ($paged >= $range &&$paged <($max_page -ceil(($range/2)))) {
                for ($i = ($paged -ceil($range/2));$i <= ($paged +ceil(($range/2)));$i++) {
                    echo "<li><a href='".get_pagenum_link($i) ."'";
                    if ($i==$paged) {
                        echo " class='current'";
                    }
                    echo ">$i</a></li>";
                }
            }
        } else {
            for ($i = 1;$i <= $max_page;$i++) {
                echo "<li><a href='".get_pagenum_link($i) ."'";
                if ($i==$paged) {
                    echo " class='current'";
                }
                echo ">$i</a></li>";
            }
        }
        echo "<li>";
        next_posts_link('>');
        echo"</li>";
        // echo '<li><span>共'.$max_page.'页</span></li>';
    }
}
//获取顶级分类ID 配合面包屑导航使用
function salong_category_top_parent_id ($current_cat_ID) {
    while ($current_cat_ID) {
        $cat = get_category($current_cat_ID); 
        $current_cat_ID = $cat->category_parent; 
        $catParent = $cat->cat_ID;
    }
    return $catParent;
}

function get_category_root_id($cat) { 
  $this_category = get_category($cat);   
  while($this_category->category_parent)   
{  
  $this_category = get_category($this_category->category_parent);   
}  
  return $this_category->term_id;   
}  
/* 获取和设置文章浏览数 */
 function getPostViews($postID) {
     $count_key = 'post_views_count';
     $count = get_post_meta($postID, $count_key, true);   
     if (is_single()) {
         if ($count == '') {
             add_post_meta($postID, $count_key, 1);
             return 1;
         } else {
             $count ++;
             update_post_meta($postID, $count_key, $count);
         }
     }
     return empty($count) ? 0 : $count;
 }

// 修改后台logo
 function custom_loginlogo() {
    $first_img = get_template_directory_uri().'/images/logo.png';
    echo '<style type="text/css">.login h1 a {background:url('.$first_img.');width:126px;height:70px;}</style>';
}
add_action('login_head', 'custom_loginlogo');

// 分页
function powerxing_custom_posts_per_page( $query ) {
    // 为特定分类指定显示数量,键为分类别名(可在后台的分类目录中查看),值为显示数量
    $ppp = array(
        // 比如为分类 notes 和 gallery 设置不同的显示数量
        'news'   =>12,
    );
    if ( $query->is_category() && $query->is_main_query() ) {
        // 获取当前分类别名
        $slug = $query->query_vars['category_name'];
 
        if ( array_key_exists($slug, $ppp) ) {
            $query->set( 'posts_per_page', $ppp[$slug] );
        }
    }
}
add_action('pre_get_posts', 'powerxing_custom_posts_per_page');
function custom_posts_per_page($query){ 
    if( is_category('wordpress-themes')  && $query->is_main_query() ) { 
        $query->set('posts_per_page', 20); 
    } 
} 
add_action('pre_get_posts', 'custom_posts_per_page');


/*阅读次数*/
function get_post_views ($post_id) {     
    $count_key = 'views';   
    $count = get_post_meta($post_id, $count_key, true);   
  
    if ($count == '') {   
        delete_post_meta($post_id, $count_key);   
        add_post_meta($post_id, $count_key, '0');   
        $count = '0';   
    }   
    echo number_format_i18n($count);   
}   
  
function set_post_views () {    
    global $post;    
    $post_id = $post -> ID;   
    $count_key = 'views';   
    $count = get_post_meta($post_id, $count_key, true);    
    if (is_single() || is_page()) {   
  
        if ($count == '') {   
            delete_post_meta($post_id, $count_key);   
            add_post_meta($post_id, $count_key, '0');   
        } else {   
            update_post_meta($post_id, $count_key, $count + 1);   
        }     
    }     
}   
add_action('get_header', 'set_post_views');  

// //屏蔽wordpress后台(仪表盘)顶部logo
function annointed_admin_bar_remove() {
global $wp_admin_bar;
/* Remove their stuff */
$wp_admin_bar->remove_menu('wp-logo');
}
add_action('wp_before_admin_bar_render', 'annointed_admin_bar_remove', 0);
// 
// //移除后台“显示选项”和“帮助”选项卡
function remove_screen_options(){ return false;}
// add_filter('screen_options_show_screen', 'remove_screen_options');
add_filter( 'contextual_help', 'wpse50723_remove_help', 999, 3 );
function wpse50723_remove_help($old_help, $screen_id, $screen){
$screen->remove_help_tabs();
return $old_help;
}
// 
// 
// function remove_menus() {
//     global $menu;
//     $restricted = array(__('Dashboard'), __('Comments'), __('Plugins'));//__('Posts'), __('Media'), __('Links'), __('Pages'), __('Appearance'), __('Tools'), __('Users'), __('Settings'),
//     end ($menu);
//     while (prev($menu)){
//         $value = explode(' ',$menu[key($menu)][0]);
//         if(strpos($value[0], '<') === FALSE) {
//             if(in_array($value[0] != NULL ? $value[0]:"" , $restricted)){
//                 unset($menu[key($menu)]);
//             }
//         }
//         else {
//             $value2 = explode('<', $value[0]);
//             if(in_array($value2[0] != NULL ? $value2[0]:"" , $restricted)){
//                 unset($menu[key($menu)]);
//             }
//         }
//     }
// }
// 
// function remove_submenu() {
//     // 删除”工具”下面的子菜单”导出”
//     remove_submenu_page('themes.php', 'themes.php');
// }
// 
// if ( is_admin() ) {
//     // 删除左侧菜单
//     add_action('admin_menu', 'remove_menus');
// 
//     //删除子菜单
//     add_action('admin_init','remove_submenu');
// }
// 
// add_filter('pre_site_transient_update_core', create_function('$a', "return null;")); // 关闭核心提示
// add_filter('pre_site_transient_update_plugins', create_function('$a', "return null;")); // 关闭插件提示
// add_filter('pre_site_transient_update_themes', create_function('$a', "return null;")); // 关闭主题提示
// remove_action('admin_init', '_maybe_update_core'); // 禁止 WordPress 检查更新
// remove_action('admin_init', '_maybe_update_plugins'); // 禁止 WordPress 更新插件
// remove_action('admin_init', '_maybe_update_themes'); // 禁止 WordPress 更新主题


add_filter('upload_mimes', 'wpjam_upload_mimes');
function wpjam_upload_mimes($mimes = array()) {
    $mimes['svg'] = 'image/svg+xml';
    return $mimes;
}
add_action('optionsframework_custom_scripts', 'optionsframework_custom_scripts');

function optionsframework_custom_scripts(){ 

}