作者: admin

  • WordPress后台删除不需要的侧边栏菜单

    自定义后台的侧边栏顶级菜单

    首先让我们看看,什么是后台的侧边栏菜单:

    1menu

    上图就是使用管理员账号登陆后看到的侧边栏所有的菜单项,WordPress给不同角色的用户定义了不同功能的使用权限,所以不同角色的用户后台所看到侧边栏菜单项都是不一样的。这个时候需求又来了,有些时候即使是管理员,部分菜单也是用不到了,例如用WordPress来建一个企业介绍性的网站,该站点根本没有添加评论功能,那么侧边栏的评论菜单是用不着的,如果让企业用户看到,他们会感到很迷惑。所以最好的办法是,根据实际情况,把不该有的侧边栏管理菜单删掉。具体实现办法是在当前主题的functions.php中添加以下代码:

    [code]function remove_menus() {
    global $menu;
    $restricted = array(__(‘Dashboard’), __(‘Posts’), __(‘Media’), __(‘Links’), __(‘Pages’), __(‘Appearance’), __(‘Tools’), __(‘Users’), __(‘Settings’), __(‘Comments’), __(‘Plugins’));
    end ($menu);
    while (prev($menu)){
    $value = explode(‘ ‘,$menu[key($menu)][0]);
    if(in_array($value[0] != NULL?$value[0]:”” , $restricted)){unset($menu[key($menu)]);}
    }
    }

    if ( is_admin() ) {
    // 删除左侧菜单
    add_action(‘admin_menu’, ‘remove_menus’);
    }[/code]

    自定义要去除的顶级菜单

    以上代码核心部分是一个函数remove_menus(),然后通过WordPress的动作接口函数add_action来执行remove_menus函数。在remove_menus函数中,通过$restricted数组来定义需要删除哪些菜单项,以上$restricted数组提供了全部菜单项,也就是说如果你全部将以上代码不做修改地复制到functions.php,那你的WordPress后台就没有任何菜单了,你应该根据实际需要去除菜单,下面讲讲$restricted各个数组项对应的菜单:

    • __(‘Dashboard’) : 控制板菜单
    • __(‘Posts’) : 文章
    • __(‘Media’) : 媒体
    • __(‘Links’) : 链接
    • __(‘Pages’) : 页面
    • __(‘Comments’) : 评论
    • __(‘Appearance’) : 外观
    • __(‘Plugins’) : 插件
    • __(‘Users’) : 用户
    • __(‘Tools’) : 工具
    • __(‘Settings’) : 设置

    例如你只想去除评论工具菜单,你只需改写以上代码第3行的$restricted数组:

    [code]$restricted = array(__(‘Comments’), __(‘Tools’));[/code]

    删除不必要的子菜单

    WordPress后台的顶级菜单下面还有子菜单,当然有些子菜单是用不到的,我们也可以将其删除,WordPress 3.1以后的版本只需用到一个函数remove_submenu_page( $menu_slug, $submenu_slug ),这里有两个参数,$menu_slug是子菜单所在顶级菜单的缩略名,$submenu_slug为子菜单的缩略名,那如何获得这两个缩略名呢?例如,点击顶级菜单设置,链接地址类似:
    http://example/wp-admin/options-general.php

    那么顶级菜单设置的缩略名为options-general.php,也就是去除http://example/wp-admin/后剩下的东西,依次类推;接着点击顶级菜单设置下面的子菜单隐私,会打开以下网址:
    http://example/wp-admin/options-privacy.php

    那么子菜单隐私的缩略名为options-privacy.php,好了,就这么简单,下面是实现代码,:

    [code]function remove_submenu() {
    // 删除”设置”下面的子菜单”隐私”
    remove_submenu_page( ‘options-general.php’, ‘options-privacy.php’ );

    // 删除”外观”下面的子菜单”编辑”
    remove_submenu_page( ‘themes.php’, ‘theme-editor.php’ );
    }

    if ( is_admin() ) {
    add_action(‘admin_init’,’remove_submenu’);
    }[/code]

    根据用户角色去除菜单

    如果你想按用户角色来去除相应的侧边栏菜单,那就再做一下用户等级的判断就可以了,给第11行的add_action添加判断,改写成:

    [code]function remove_menus() {
    global $menu;

    // 这里$restricted设置了评论和工具菜单
    $restricted = array(__(‘Comments’), __(‘Tools’));
    end ($menu);
    while (prev($menu)){
    $value = explode(‘ ‘,$menu[key($menu)][0]);
    if(in_array($value[0] != NULL?$value[0]:”” , $restricted)){unset($menu[key($menu)]);}
    }
    }

    function remove_submenu() {
    remove_submenu_page( ‘options-general.php’, ‘options-privacy.php’ );
    }

    global $current_user;
    get_currentuserinfo();

    //如果当前用户的等级小于3,那么就删除对应的菜单
    if ($current_user->user_level < 3 && is_admin()) {
    add_action(‘admin_menu’, ‘remove_menus’);
    add_action(‘admin_init’,’remove_submenu’);
    }[/code]

    在WordPress后台 – 用户那里,管理员可以查看 / 编辑用户的角色,以下是用户角色和其等级的对应关系:

    • 0 级对应 订阅者
    • 1 级对应 投稿者
    • 2 – 4 级对应 作者
    • 5 – 7 级对应 编辑
    • 8 – 10 级对应 管理员

    WordPress 3.0 之后将逐渐弃用用户数字等级,推荐使用户权限,可以用函数current_user_can()来判断用户权限。

    使用超简单的插件

    下面推荐一个使用超简单的插件,不需要任何编码,只需拖拖鼠标就可以实现上面所说的大部分功能。插件名称是:Admin Menu Editor,可以点此前往WordPress官方下载,启用后到设置 – Menu Editor,就可以编辑后台的菜单了,还可以添加外链菜单,可以调整菜单顺序等等,剩下的你自己体验吧!

     

    文章来源:个人随笔 香格里拉seo (www.xgllseo.com)转载请注明,请尊重版权。
  • WordPress后台添加帮助说明

    一、去除不必要的面板

    登陆进入WordPress后台,首先进入的一般是”控制板”这个页面,这里显示了博客的概况、近期评论、引入链接、快速发布、WordPress 开发日志等等,这个页面可以整体的显示博客的一些信息,也提供了一些小的功能。其实WordPress提供这么多的面板,有很多我们是用不着的,如”其它 WordPress 新闻”,”WordPress 开发日志”等,而且不同用户还有不同的喜好,这时候我们可以将不需要的面板删除,方法很简单,在控制板页面右上角有个 “显示选项” 按钮,点击可以弹出如下图所示的选项,你可以根据需要去除不需要的模块。

    1dashboard

    需要注意的是,以上设置只对当前用户有效,也就是说”控制板”的选项在不同的注册用户之间不会相互影响。本文讲的是WordPress建企业站,所以应该突出企业站的一些性质,应该去除掉一些博客的特征,所以我们还是根据实际情况强制去除”控制板”的一些面板,不管哪个注册用户都看不到这些面板,这样就无需用户自行去屏蔽某些面板了。具体实现办法是在当前主题的functions.php中添加以下代码(根据代码注释,自行修改):

    [code]function example_remove_dashboard_widgets() {
    // Globalize the metaboxes array, this holds all the widgets for wp-admin
    global $wp_meta_boxes;

    // 以下这一行代码将删除 “快速发布” 面板,如果你想保留快速发布,请删除这行代码
    unset($wp_meta_boxes[‘dashboard’][‘side’][‘core’][‘dashboard_quick_press’]);

    // 以下这一行代码将删除 “引入链接” 面板
    unset($wp_meta_boxes[‘dashboard’][‘normal’][‘core’][‘dashboard_incoming_links’]);

    // 以下这一行代码将删除 “插件” 面板
    unset($wp_meta_boxes[‘dashboard’][‘normal’][‘core’][‘dashboard_plugins’]);

    // 以下这一行代码将删除 “近期评论” 面板
    unset($wp_meta_boxes[‘dashboard’][‘normal’][‘core’][‘dashboard_recent_comments’]);

    // 以下这一行代码将删除 “近期草稿” 面板
    unset($wp_meta_boxes[‘dashboard’][‘side’][‘core’][‘dashboard_recent_drafts’]);

    // 以下这一行代码将删除 “WordPress 开发日志” 面板
    unset($wp_meta_boxes[‘dashboard’][‘side’][‘core’][‘dashboard_primary’]);

    // 以下这一行代码将删除 “其它 WordPress 新闻” 面板
    unset($wp_meta_boxes[‘dashboard’][‘side’][‘core’][‘dashboard_secondary’]);

    // 以下这一行代码将删除 “概况” 面板
    unset($wp_meta_boxes[‘dashboard’][‘normal’][‘core’][‘dashboard_right_now’]);
    }
    add_action(‘wp_dashboard_setup’, ‘example_remove_dashboard_widgets’ );

    // 以下这一行代码将删除 “Welcome” 面板
    add_action( ‘load-index.php’, ‘remove_welcome_panel’ );
    function remove_welcome_panel() {
    remove_action(‘welcome_panel’, ‘wp_welcome_panel’);
    }[/code]

    二、添加帮助面板

    通过上面的说明可以删除一些不必要的面板,同时我们可以往”控制板”中添加一些面板,如帮助说明。如果你写的WordPress主题不是单单写给你用自己的,那么一份良好的使用说明是很有必要的。你可以通过往当前主题的functions.php中添加以下php代码,来实现简单的文本使用说明:

    [code]function custom_dashboard_help() {
    echo ‘这里填使用说明的内容,可填写HTML代码’;

    // 如以下一行代码是露兜博客开放投稿功能所使用的投稿说明
    // echo “<p><ol><li>投稿,请依次点击 文章 – 添加新文章,点击 &quot;送交审查&quot; 即可提交</li><li>修改个人资料,请依次点击 资料 – 我的资料</li><li>请认真填写“个人说明”,该信息将会显示在文章末尾</li><li>有事请与我联系,Email: 123@gmail.com&nbsp;&nbsp;&nbsp;QQ: 123456</li></ol></p>”;
    }

    function example_add_dashboard_widgets() {
    wp_add_dashboard_widget(‘custom_help_widget’, ‘这里替换成面板标题’, ‘custom_dashboard_help’);
    }
    add_action(‘wp_dashboard_setup’, ‘example_add_dashboard_widgets’ );[/code]

    2tougao

    上图是露兜博客开放投稿功能所使用的投稿说明。当然,第一段的删除面板和第二段的添加面板代码是可以合在一起写的,还可以节省一个add_action,如:

    [code]function example_remove_dashboard_widgets() {
    // Globalize the metaboxes array, this holds all the widgets for wp-admin
    global $wp_meta_boxes;

    // 删除面板
    unset($wp_meta_boxes[‘dashboard’][‘side’][‘core’][‘dashboard_quick_press’]);
    unset($wp_meta_boxes[‘dashboard’][‘normal’][‘core’][‘dashboard_incoming_links’]);
    unset($wp_meta_boxes[‘dashboard’][‘normal’][‘core’][‘dashboard_plugins’]);
    unset($wp_meta_boxes[‘dashboard’][‘normal’][‘core’][‘dashboard_recent_comments’]);
    unset($wp_meta_boxes[‘dashboard’][‘side’][‘core’][‘dashboard_recent_drafts’]);
    unset($wp_meta_boxes[‘dashboard’][‘side’][‘core’][‘dashboard_primary’]);
    unset($wp_meta_boxes[‘dashboard’][‘side’][‘core’][‘dashboard_secondary’]);
    unset($wp_meta_boxes[‘dashboard’][‘normal’][‘core’][‘dashboard_right_now’]);

    // 添加面板
    wp_add_dashboard_widget(‘custom_help_widget’, ‘欢迎投稿’, ‘custom_dashboard_help’);
    }

    function custom_dashboard_help() {
    echo “<p><ol><li>投稿,请依次点击 文章 – 添加新文章,点击 “送交审查” 即可提交</li><li>修改个人资料,请依次点击 资料 – 我的资料</li><li>请认真填写“个人说明”,该信息将会显示在文章末尾</li><li>有事请与我联系,Email: 123#gmail.com&nbsp;&nbsp;&nbsp;QQ: 123</li></ol></p>”;
    }

    add_action(‘wp_dashboard_setup’, ‘example_remove_dashboard_widgets’ );[/code]

     

    文章来源:个人随笔 香格里拉seo (www.xgllseo.com)转载请注明,请尊重版权。
  • WordPress点击分类链接跳转到分类下第一篇文章

    帮助企业建站往往都会提出一些不合理又奇怪的功能要求但是没有办法客户需求,
    用过WordPress的都知道点击目录分类是直接进入该分类下列出所有文章的,但是
    企业要求不是要显示所有文章列表而是进入该目录分类的第一个文章,我们可以这样做。先在当前主题目录下新建一个文件,命名为 category.php ,然后用文本编辑器打开,填上以下代码即可:

    [code]<?php
    /**
    * 名称:WordPress分类页跳转到分类目录下第一篇文章
    * 作者:个人随笔
    * 博客:https://sdeno.com/
    * 最后修改:2012年01月14日
    */

    global $wp_query;

    // 获取当前分类ID
    $cat_ID = get_query_var(‘cat’);

    // 获取当前分类下的第一篇文章
    $myposts = get_posts(‘showposts=1&orderby=title&order=ASC&category=’.$cat_ID);

    if($myposts) {
    $mylink = get_permalink($myposts[0]->ID);
    header (“Location: ” . $mylink );
    exit;
    }
    else {
    header (“Location: ” . get_option(‘home’) );
    exit;
    }

    ?>[/code]

    以上代码将会针对所有分类页,也就是说点击任意一个分类的链接,都将直接跳转到这个分类下的第一篇文章。如果你想让某个分类不受此
    影响,可以将以上代码的17行改成:

    [code]if($myposts && $cat_ID != 555) {[/code]

    555为你想要排除的分类id。

    文章来源:个人随笔 香格里拉seo (www.xgllseo.com)转载请注明,请尊重版权。
  • WordPress防采集

    想必做过网站的人都听说个这个,依靠着一些采集程序,点点鼠标,填几项内容就可以自动将别的网站上的文章轻松地弄到自己的网站上,而不需要去一篇篇地去复制粘贴,其实用剽窃更恰当一些吧,当然采集好听点。

    采集算是充实网站内容的一个捷径,但是对被采集的网站来说并不是什么好事,我辛辛苦苦写的文章就这么被你轻松弄过去,还去除了我的版权信息,你叫我怎么咽得下这口气!!本文要给WordPress用户的友情提示就是,如何在一定程度上阻止他人采集你的文章。方法很简单:进入WordPress管理后台 – 设置 – 阅读,将 对于 feed 中的每篇文章,显示 设置成 摘要 。

    其实大多数采集程序都是通过采集网站的feed来实现,如果你往feed中输出了全文,正和了他们的意,不费吹灰之力就可以把你文章的全部内容,连带图片都给采集过去了。如果feed中只有摘要,随便他们采集吧,随带帮我做做宣传也可以啊,呵呵!当然你可能会说,订阅用户就看不到全文了,其实让订阅用户直接点击文章链接进入你的网站阅读,可以给订阅用户更好的阅读体验。为了弥补用户无法看到全文的缺憾,可以在feed中给每篇文章添加阅读全文链接,这样用户就清楚他看到的是摘要,想要看全文,点链接就可以了,具体方法是,在你当前主题的functions.php的 <?php 和 ?> 之间添加以下代码,最后用UTF-8编码另存为就可以了:

     

    [code]/** RSS 中添加查看全文链接 */
    function feed_read_more($content) {
    return $content . ‘<p><a rel=”bookmark” href=”‘.get_permalink().’” target=”_blank”>查看全文</a></p>’;
    }
    add_filter (‘the_excerpt_rss’, ‘feed_read_more’);[/code]

    当然,以上方法只针对采集feed的自动采集程序,对于更高级的直接采集文章页面的程序就无能为力了。

    文章来源:个人随笔 香格里拉seo (www.xgllseo.com)转载请注明,请尊重版权。
  • 教你怎样去掉国外wordpress主题受保护的footer版权信息

    使用wordpress的朋友都知道国外制作的主题非常好看,于是就到外国的网站搜索下载一个自己喜欢的wordpress主题,但是当下载回来的主
    题想修改模板里的footer的版权信息时却不能修改,就算能修改但是已访问博客是就出现错误。错误信息显示:
    “All the links in the footer should remain intact. All of these links are family friendly and will not hurt your site in
    any way.”
    出现这种情况是出于某种原因,或者是收费主题,或者是作者的版权原因,总之,很多主题是不允许修改底部版权或广告链接的。那有办法
    修改吗?有的。
    因为国外对于版权看得很重,外国人制作的wordpress主题加密主要有两类方法。今天介绍的是其中的一类,大家可以模仿修改本类主题(另
    一类是用base64位加密的,操作起来很麻烦,所以不介绍这一类了)。
    虽然本文教给大家一种解密办法,但建议尽量保留版权信息,其实对于大多博主来说并无大妨,毕竟人家制作的主题设计者负出了心血与劳
    动,免费使用人家的作品还去版权,好象人品上讲不过去。好了,废话不说了,进入操作步骤:
    网上有人介绍还要修改header.php,实践证明没有必要,只需修改functions.php文件即可。
    第一步:打开主题的functions.php模板函数,然后用快捷键“ctrl+f”查找“wp_initialize_the_theme”
    找到下面的一段代码:
    “if (!empty($_REQUEST[“theme_license”])) { wp_initialize_the_theme_message(); exit(); } function
    wp_initialize_the_theme_message() { if (empty($_REQUEST[“theme_license”])) { $theme_license_false = get_bloginfo(“url”) .
    “/index.php?theme_license=true”; echo “”; exit(); } else { echo (“

    All the links in the footer should remain intact. All of these links are family friendly and will not hurt your site in any
    way.

    ”); } }”

    先删除

    “if (!empty($_REQUEST[“theme_license”])) { wp_initialize_the_theme_message(); exit(); }”

    接着再删除

    “if (empty($_REQUEST[“theme_license”])) { $theme_license_false = get_bloginfo(“url”) . “/index.php?theme_license=true”
    ; echo “”; exit(); } else { echo (“

    All the links in the footer should remain intact. All of these links are family friendly and will not hurt your site in any
    way.

    ”); }”

    其实就是把这段代码变成下面这句代码:

    “function wp_initialize_the_theme_message() { }”

    第二步:找到下面的一段代码

    “function wp_initialize_the_theme_finish() { $uri = strtolower($_SERVER[“REQUEST_URI”]); if(is_admin() || substr_count
    ($uri, “wp-admin”) > 0 || substr_count($uri, “wp-login”) > 0 ) { /* */ } else { $l = ‘Designed by: Free SharePoint |
    Todays Current WordPress Themes Directory, Wicked Pittsburgh and WordPress Themes Free’; $f = dirname(__file__) .
    “/footer.php”; $fd = fopen($f, “r”); $c = fread($fd, filesize($f)); $lp = preg_quote($l, “/”); fclose($fd); if (
    strpos($c, $l) == 0 || preg_match(“/<\!–(.*” . $lp . “.*)–>/si”, $c) || preg_match(“/<\?php([^\?]+[^>]+” . $lp . “
    .*)\?>/si”, $c) ) { wp_initialize_the_theme_message(); die; } } } wp_initialize_the_theme_finish();”

    删除

    “$uri = strtolower($_SERVER[“REQUEST_URI”]); if(is_admin() || substr_count($uri, “wp-admin”) > 0 || substr_count($uri,
    “wp-login”) > 0 ) { /* */ } else { $l = ‘Designed by: Free SharePoint | Todays Current WordPress Themes Directory,
    Wicked Pittsburgh and WordPress Themes Free’; $f = dirname(__file__) . “/footer.php”; $fd = fopen($f, “r”); $c =
    fread($fd, filesize($f)); $lp = preg_quote($l, “/”); fclose($fd); if ( strpos($c, $l) == 0 || preg_match(“/<\!–(.*” .
    $lp . “.*)–>/si”, $c) || preg_match(“/<\?php([^\?]+[^>]+” . $lp . “.*)\?>/si”, $c) ) {
    wp_initialize_the_theme_message(); die; } }”

    将这一段变成

    “function wp_initialize_the_theme_finish() { } wp_initialize_the_theme_finish();”

    第三步:找到下面的一段代码

    “function wp_initialize_the_theme_load() { if (!function_exists(“wp_initialize_the_theme”)) {
    wp_initialize_the_theme_message(); die; } }”

    删除

    “if (!function_exists(“wp_initialize_the_theme”)) { wp_initialize_the_theme_message(); die; }”

    将这一段变成

    “function wp_initialize_the_theme_load() { }”

    修改完之后更新functions.php文件,再打开footer.php文件就可以随便修改版权那里的信息了。

     

    文章来源:个人随笔 香格里拉seo (www.xgllseo.com)转载请注明,请尊重版权。