wordpress评论者网址在新窗口打开

最近网站来了不少人评论 不过都是广告 不过没事啦!来就来吧! 没有广告评论的网站不是好网站!

呵呵 不过这样也会出现一些问题 比如他填写了链接 然后重点是wordpress默认的是用到一个rel=”external nofollow” 标签 而这个标签和target=”_blank”是类似的 不过需要用javascrip配合使用才会有效果 所以我们需要做的就是添加这个javascrip 就好了

添加在头部header.php中即可:

<script type="text/javascript">
 function externallinks()
{
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("a");
 for (var i=0; i<anchors.length; i++)
{
 var anchor = anchors[i];
 if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external nofollow")
{
anchor.target = "_blank";
}
}
}
window.onload = externallinks;
</script>

 

多个wordpress共用一个数据库 实现用户共享

多个wordpress共用一个数据库 实现用户共享 事情是这样的,如果我有两个wordpress站点A站和B站,并且他们在同一域名下,现在我想以前A站的用户可以登录B站,在A站注册的用户可以在B站登录,B站注册的用户可以在A登录。并且同一个用户在A站和B站拥有同样的权限。

比如主站A站 A.com,现在要建立英文B站的A.com/en

共用数据库

要实现这样的目的我们必须把两个站点数据放在同一个数据库里,也就是A站和B站的配置文件wp-config.php中数据库名、数据库用户、数据库密码是相同的。

然后假设你之前先有A站并且有用户,数据库前缀是wp_ , 现在设置B站的数据库前缀为wpen_ ,这样他们就区分开了。要B站能共享到A站的用户数据,你需要在B站wp-config.php文件中添加:

define('CUSTOM_USER_TABLE', 'wp_users');
define('CUSTOM_USER_META_TABLE', 'wp_usermeta');

意思是B站共用A站wp_users和wp_usermeta这两个数据表,用户以及权限等信息在这里面。

安装B站

B站配置文件设置好后,现在打开A.com/en安装B站,你会发现提示用户名已存在,可以不用管接着安装就是,安装好后生成的用户信息也可以不用管。现在你用A站的管理员身份登录B站是可以登录的,但是你进入后台会提示你没有权限的。

现在用户只有身份没有权限。接着我们登陆数据库,这里我们用phpmyadmin来管理数据库的,打开wp_usermeta这个表。你会发现user_id 为1 (管理员),meta_key为wp_capabilities ,权限meta_value 为a:1:{s:13:”administrator”;b:1;} 这样一条数据 。这表示管理员在A站的权限信息。

现在我们要这个管理员在B站也有同样的权限,那就也要有user_id 为1,meta_key为wpen_capabilities ,权限meta_value 为a:1:{s:13:”administrator”;b:1;} 这样一条数据。

明白了吧,现在手动对应的添加一条数据,umate_id 加1,meta_key 为 wpen_capabilities 其他不变。然后保存。现在你登录B站后台就有权限了。

你查看B站用户发现A站的用户都在这里,但是他们在这里都没有任何身份除了登录什么也做不成,这和上面修改管理员权限是一样的道理。我们直接在B站后台批量修改用户角色权限,不用去数据库一个一个修改。

其实我不会mysql不然可直接输入命令批量改:)

新注册用户

到现在为止我们让以前A站用户可以在B登录并有同样权限了,那么以后新注册用户呢?再去B站后台改?也可以不过太麻烦也不及时。搜索到答案在A站主题functions.php里添加:

//用户共享
add_action( 'user_register', 'dup_capabilities' );
add_action('profile_update', 'dup_capabilities');
function dup_capabilities( $user_id ){
//在这里设置数据表前缀,不分主站子站,全部写上即可。
$prefixs = array('wp_','wpen_');
global $table_prefix;
$cap_val = get_user_meta( $user_id, $table_prefix.'capabilities',true);
if( !empty( $cap_val ) ) {
foreach( $prefixs as $prefix ){
if( $prefix != $table_prefix )
update_user_meta( $user_id, $prefix.'capabilities', $cap_val );
}
}
}

这样A站新注册用户可在B站以同样的权限登录,但是有人想了,如果在B站新注册的用户想在A站登录呢?那就是把上面的代码也加到B站的主题主题functions.php里。当然你可以另外写个小插件用来放这些代码,换主题也不用重新来。

整个过程用的wordpress版本是wordpress4.4.2中文版。

总结一下

现在到这里我们简单实现了A、B两个站点的用户共享。不过从用户体验上来说还缺一点,那就是我如果登录A站了,那么我现在在同一个浏览器打开B站最好是不要再登录一次。这个也是可以解决的。

不过大多数wordpress博客站点是关闭了注册的,或者是启用了自动登录等其他方式。因为….因为这些功能哪里用的上啊我们:),不过我想总有人需要嘛是不是~~

wordpress建设 支持中文用户名的简单方法

不解释 收起来  这次突然需要用了 才想起来 还好我以前用过 知道这个东西的存在 不然那就不好搞了  哈哈! 开头纯属搞笑

直接上东西吧 这东西直接加在主题functions.php文件里面就好了 下面是代码:

function ludou_sanitize_user ($username, $raw_username, $strict) {
  $username = wp_strip_all_tags( $raw_username );
  $username = remove_accents( $username );
  // Kill octets
  $username = preg_replace( '|%([a-fA-F0-9][a-fA-F0-9])|', '', $username );
  $username = preg_replace( '/&.+?;/', '', $username ); // Kill entities

  // 网上很多教程都是直接将$strict赋值false,
  // 这样会绕过字符串检查,留下隐患
  if ($strict) {
    $username = preg_replace ('|[^a-z\p{Han}0-9 _.\-@]|iu', '', $username);
  }

  $username = trim( $username );
  // Consolidate contiguous whitespace
  $username = preg_replace( '|\s+|', ' ', $username );

  return $username;
}

add_filter ('sanitize_user', 'ludou_sanitize_user', 10, 3);

 

wordpress建设 检测当前页面使用的哪个模板 获取当前使用模板

wordpress建设 检测当前页面使用的哪个模板 获取当前使用模板

说实话这个真的很有用,特别是对于我这种懒人来说不喜欢记东西(其实是我记不住) 然后主题都是直接看到好就下下来直接改 然后遇到的主题多了 总有些无法理解的 真的是无法理解 不知道它弄的什么鬼  然后就用这个办法 一拿一个准  所以真的很好 好了废话这么多 直接开说把!

方法:

1.查找wordpress源文件:wp-includes\template-loader.php, 找到以下代码:

else :
$template = get_index_template();
endif;

2.在其下面添加以下代码:

if($_GET[tpl]=='die'){
die($template);
}

3.打开当前页面,在域名后面输入引号内的内容:“?tpl=die”,即可显示当前页面调用的模板文件,如图:

QQ截图20160408143752

wordpress根据分类别名(名称)获取分类链接和分类ID(或分类别名)

根据分类别名获取分类其它信息,可以通过使用 get_category_by_slug($slug)函数可以实现根据分类别名获取分类的相关数据数组,数组包含了分类ID、分类名称等数据,然后通过使用 get_category_link($category_id) 函数获取分类链接;根据分类名称获取分类ID,可以通过get_cat_ID($cat_name)函数获取

根据分类别名获取示例:

<?php  
    $cat=get_category_by_slug('wordpress'); //获取分类别名为 wordpress 的分类数据  
    $cat_links=get_category_link($cat->term_id); // 通过$cat数组里面的分类id获取分类链接      
?> 
<a href="<?php echo $cat_links; ?>" title="<?php echo $cat->name; ?>"><?php echo $cat->name; ?></a>

根据分类名称获取示例:

$cat_ID = get_cat_ID($cat_name);  // $cat_name为分类名称
$cat = get_category($cat_ID);
echo $cat->slug;
//echo $cat->name;获取分类名称

WordPress标题优化 Title标签

简单粗暴 直接放在header.php文件里面 找到title标签 修改成下面这样就可以

<title> 
   <?php 
         if (is_home()||is_search()) { bloginfo('name'); } 
         else{wp_title(''); echo ' | '; bloginfo('name');} 
    ?> 
 </title>

这样,文章所在页面标题的显示形式是:” 文章标题 | 站点标题 “了,如果你不想加 站点标题,可以在else后面只添加wp_title(”);代码,注意,不要漏掉括号里面的单引号,否则会在标题前面出现<<符号。

wordpress调用文章内容

wordpress调用文章内容 字数是可以变换的

<p><?php echo mb_strimwidth(strip_tags(apply_filters('the_excerpt', $post->post_content)), 0, 200,"..."); ?> </p>

纯属记录  最近在弄公司的网站 各种要求 我感觉还是把我弄过了的东西记下来 以后用的时候直接来自己的博客看 多爽!