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(){
}