WordPress去掉链接category方法

WordPress的分类目录链接会带有类别,以便链接层次化,层级不超过三级,更有利于Seo优化,所以要删除类别层级。

在主题文件functions.php中加上以下代码即可。

//删除链接category目录
add_action( 'load-themes.php',  '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');
//  // We don't want to insert our custom rules again
//  no_category_base_refresh_rules();
// }
// Remove category base
add_action('init', 'no_category_base_permastruct');
function no_category_base_permastruct() {
    global $wp_rewrite, $wp_version;
    if (version_compare($wp_version, '3.4', '<')) {
        // For pre-3.4 support
        $wp_rewrite -> extra_permastructs['category'][0] = '%category%';
    } else {
        $wp_rewrite -> extra_permastructs['category']['struct'] = '%category%';
    }
}
// Add our custom category rewrite rules
add_filter('category_rewrite_rules', 'no_category_base_rewrite_rules');
function no_category_base_rewrite_rules($category_rewrite) {
    //var_dump($category_rewrite); // For Debugging
    $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]';
    }
    // 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]';
    //var_dump($category_rewrite); // For Debugging
    return $category_rewrite;
}
// Add 'category_redirect' query variable
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;
}
// Redirect if 'category_redirect' is set
add_filter('request', 'no_category_base_request');
function no_category_base_request($query_vars) {
    //print_r($query_vars); // For Debugging
    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;
}

wordpress删除菜单多余的CLASS和ID沉余

1wordpress增加模板菜单方法

在functions.php文件加上以下代码,

if(function_exists('register_nav_menus')){

register_nav_menus(

array(

'header-menu' => __( '菜单名字A' ),

'footer-menu' => __( '菜单名字B' ),

'sider-menu' => __('菜单名字C')

)

);

}

最简单的调用方式,前台加上下面代码

<?php wp_nav_menu(); ?>

也可以对这个菜单进行更多的控制,代码如下

<?php wp_nav_menu(

array(

'theme_location'  => '' //指定显示的导航名,如果没有设置,则显示第一个

'menu'            => 'header-menu',

'container'       => 'nav', //最外层容器标签名

'container_class' => 'primary', //最外层容器class名

'container_id'    => '',//最外层容器id值

'menu_class'      => 'sf-menu', //ul标签class

'menu_id'         => 'topnav',//ul标签id

'echo'            => true,//是否打印,默认是true,如果想将导航的代码作为赋值使用,可设置为false

'fallback_cb'     => 'wp_page_menu',//备用的导航菜单函数,用于没有在后台设置导航时调用

'before'          => '',//显示在导航a标签之前

'after'           => '',//显示在导航a标签之后

'link_before'     => '',//显示在导航链接名之后

'link_after'      => '',//显示在导航链接名之前

'items_wrap'      => '<ul id="%1$s">%3$s</ul>',

'depth'           => 0,////显示的菜单层数,默认0,0是显示所有层

'walker'          => ''// //调用一个对象定义显示导航菜单 )); 

?>

2如何删除菜单选择器沉余

默认Wordpress菜单生成的Html代码

代码在菜单列表中li有多个Id,也有多个Class的类,而且定义整个菜单样式,根本不需要这么多选择器,下面介绍删除Wordpress沉余选择器的方法,代码如下

add_filter('nav_menu_css_class', 'my_css_attributes_filter', 100, 1); //删除Class选择器

add_filter('nav_menu_item_id', 'my_css_attributes_filter', 100, 1); //删除Id选择器

add_filter('page_css_class', 'my_css_attributes_filter', 100, 1);

function my_css_attributes_filter($var) {

return is_array($var) ? array_intersect($var, array('current-menu-item','current-post-ancestor','current-menu-ancestor','current-menu-parent')) : ''; //删除当前菜单的四个选择器

}

WordPress网站数据还原

1网站文件还原

把备份好的文件解压,上传到新空间。也可以直接把压缩包上传到新空间,再使用空间的解压功能(现在空间都会有这个功能)。

还原网站文件,就是插件和网站附件,还有就是你修改过的Wordpress相关文件。

2数据库还原

备份的数据导入新空间的数据库;而数据库的导入和备份方法相对应,也是三个方法。

A . 到Wordpress后台:工具-导入-选择Wordpress安装,选择导出的Xml文件,即可导入。

B . 直接进入数据库的phpmyadmin面板,选中数据库,直接导入。

C . 主机空间面板数据库导入功能(注 : 不同id商,空间操作面板大同小异)

3配置新数据库链接

打开空间ftp网站根目录找到wp-config.php文件,编辑配置新的数据库连接信息;

以上3点完成后,直接进入网站后台,重新开启已停用插件即可。

湘ICP备14010239号-1