摘要:我爱水煮鱼开发的WPJAM BASIC插件在安装启用后,在Wordpress后台的左侧会多一个“WP问题”的社区问答链接,用户可以通过这个链接进去提问和寻找问题。但估计好多人对这个功能用的不多,如果想删除后台这个“WP问题”,可以按这篇文章的方法操作。

WPJAM BASIC是我爱水煮鱼开发的一款Wordpress插件,在中文wordpress里知名度很高,几乎凡是介绍Wordpress插件的文章或网站就会推荐WPJAM BASIC这个插件。因为它的功能实在是太强大、太实用了,WPJAM BASIC插件包含SMTP、百度站长、数据库优化、性能优化、用户角色、文章目录、七牛镜像、简单SEO等实用性很强的功能。可以说,用了WPJAM BASIC可以少装不少插件。

不过WPJAM BASIC有一个比较烦的地方,在安装启用后,会在Wordpress后台左侧生成一个“WP问题”的链接。“WP问题”是作者提供的一个简单的Wordpress相关的问答社区,任何有Wordpress或技术问题都可以直接点击这个链接提问(有没有人回答就另外一回事了)。

虽然这个设定的初衷是好的,可以让所有Wordpress的用户第一时间提问,但是据我使用WPJAM BASIC插件这么长时间来看,这个功能基本上用不到,不但从来没有在上面提过问,而且我也从来没有点进去查找过相关问题。除了最开始看到这个“WP问题”时好奇是什么点进去过,以及后来使用Wordpress的时候不小心点到过,我从来就没有点进过这个链接。

这个“WP问题”默认是无法删除和去掉的,而且有人在“WP问题”里提了相关的问题,问怎么才能删掉这个“WP问题”,WPJAM BASIC的开发者Denis也是直接回复说“请不要使用WPJAM的任何插件”或“请卸载WPJAM所有插件”之类。

但这个“WP问题”在左侧多占一个位置,且根本又用不到,所以我还是很希望删掉。看了一下插件的代码,删掉还是很简单的。

1、找到插件的"wpjam-basic/include/topic.php"文件,找到如下代码(大概在第83行到112行):

add_filter('wpjam_pages', 'wpjam_topic_admin_pages');
add_filter('wpjam_network_pages', 'wpjam_topic_admin_pages');
function wpjam_topic_admin_pages($wpjam_pages){
	$subs = array();
	$menu_title = 'WP问题';

	if(wpjam_topic_get_weixin_user()){

		$wpjam_topic_messages = wpjam_get_topic_messages();
		if($unread_count	= $wpjam_topic_messages['unread_count']){
			$menu_title .= '<span class="update-plugins count-'.$unread_count.'"><span class="plugin-count">'.$unread_count.'</span></span>';
		}

		$subs['wpjam-topics']			= array('menu_title'=> '所有问答',	'function'=>'wpjam_topics_page',	'capability' => 'read');
		$subs['wpjam-topic']			= array('menu_title'=> '我要提问',	'function'=>'wpjam_topic_edit_page','capability' => 'read');
		$subs['wpjam-topic-user']		= array('menu_title'=> '个人资料',	'function'=>'wpjam_topic_user_page','capability' => 'read');
		if(isset($_GET['page']) && ($_GET['page'] == 'wpjam-topic-messages')){
			$subs['wpjam-topic-messages']	= array('menu_title'=> '消息提醒',	'function'=>'wpjam_topic_messages_page','capability' => 'read');
		}
	}

	$wpjam_pages['wpjam-topics']	= array(
		'menu_title'	=> $menu_title,		
		'icon'			=> 'dashicons-wordpress',
		'subs'			=> $subs,
		'capability'	=> 'read'
	);

	return $wpjam_pages;
}

2、将上面的所有代码注释掉或删除掉即可,上面的代码应该是将“WP问题”这个按钮添加到后台左侧导航的意思,只要将该函数删除即不会在左侧添加按钮了,也不影响插件的其他正常运行。为了插件的安全起见,我没有直接删除代码,而是选择注释。注释后的效果如下图所示:

WPJAM BASIC删除后台“WP问题”的方法

我看到其他的Wordpress相关的论坛里,有人担心这个“WP问题”会不安全、会窃取自己网站数据的,这个可以完全放心的,作者没必要怎么干。一来WPJAM BASIC是提交到了wordpress插件官方的,如果有这些不安全的因素Wordpress也不会通过,而且七牛云的官方插件推荐里,也有WPJAM BASIC;二来看插件的代码就知道,这个“WP问题”只是通过API的方式调用作者服务器的数据而已。所以,如果是基于这种安全考虑的,就太小看我爱水煮鱼了。

另外,如果启用了WPJAM BASIC插件里面的“文章目录”功能,而刚好网站又设置了全站链接都是新窗口打开的话,那么将会导致点击文章目录的链接时也是新窗口打开,这样不利于用户体验也看着很别扭。解决办法是,在“文章目录”的设置项里,找到“JavaScript 代码”,在第二行添加如下代码:

jQuery("#toc a").attr("target","_self"); //设置不在新窗口打开。

修改后的完整代码如下:

jQuery(document).ready(function(){
        jQuery("#toc a").attr("target","_self"); //设置不在新窗口打开。
	jQuery('#toc span').on('click',function(){
	    if(jQuery('#toc span').html() == '[显示]'){
	        jQuery('#toc span').html('[隐藏]');
	    }else{
	        jQuery('#toc span').html('[显示]');
	    }
	    jQuery('#toc ul').toggle();
	    jQuery('#toc small').toggle();
	});
});

这样,就算你的网站设置了全站所有链接都是新窗口打开的,点击文章目录的时候也不会采用新窗口。