wordpress网站指定分类不在首页显示

一般来说还是不用到的,但是也是一般来说,这次我就用到了,网站现在对于电影还是比较敏感的所有决定电影以后更新的内容都不在首页显示,废话不多说方法有很多种这里就介绍两种:

第一种:直接修改index.php

把:<?php if ( have_posts() ) : ?>

修改成:

<?php if ( have_posts() ) : is_home() && query_posts($query_string .'&cat=-ID号') ?>

如果你是要屏蔽ID为1的分类就是这样的:

<?php if ( have_posts() ) : is_home() && query_posts($query_string .'&cat=-1') ?>

如果你是要屏蔽ID为1和2的分类就是这样的:

<?php if ( have_posts() ) : is_home() && query_posts($query_string .'&cat=-1,-2') ?>

第二种:functions.php修改

这个方法我比较好一点我用的就是这个

//在首页中排除某些分类
function exclude_category_home( $query ) {
if ( $query->is_home ) {
$query->set( 'cat', '-1' ); //你要排除的分类ID
}
return $query;
}
add_filter( 'pre_get_posts', 'exclude_category_home' );

这个方法直接不会有任何页面空缺问题,而且在最新内容中也不会出现。直接在当前主题的functions.php添加上面的脚本,修改对应的分类排除。

wordpress文章发布时间文章作者美化

QQ截图20160529190643

其实也没别的,多了几个图标然后文章发布的时间精确了一点,多了一个浏览量和分类。

原版代码:

<i style="color:#7a7a7a" class="fa fa-user"></i> <a href="<?php echo get_author_posts_url(get_the_author_meta('ID')); ?>" title="查看<?php the_author(); ?>所有文章" target="_blank"><?php the_author(); ?></a> <i style="color:#7a7a7a" class="fa fa-clock-o"></i> <?php the_date('Y-m-d H:i l'); ?> <i style="color:#7a7a7a" class="fa fa-eye"></i> <?php post_views(' ', ''); ?>人围观 <i style="color:#7a7a7a" class="fa fa-tag"></i><?php the_category( ‘, ‘ ) ?>

放到你想展现的地方就好了,代码里面的内容还是比较简单的我简单的解释一下:

图标我用的是Font Awesome图标不懂怎么用的可以来这里看看:Font Awesome图标应用 简单实例教程 还有这里:Font Awesome 4.5图标 一款风靡全球的图标字体库和CSS框架

看来之后就知道这个图标怎么来的了!

还有一些就是调用了 这里就不做解释了可以来这里看看:开发WordPress主题常用的函数列表

附录:WordPress的时间函数

文章的时间函数为:
<?php the_time() ?>
 
评论的时间函数为:
<?php comment_date() ?>
 
评论的日期函数为:
<?php comment_time() ?>
 
一个典型的时间函数实例为以下代码:
<?php the_time(’F jS, Y) ?>

单引号内的代码即为时间参数。

WordPress的全部时间参数及显示效果

* a代表小写的英语的上下午,如am、pm
* A代表大写的英语的上下午,如AM、PM
* d代表英语的日期(小于10仍为两位数写法),如05、12
* D代表中文的星期,如五、七
* F代表中文的月份(包括“月”这个字),如五月、十二月
* g代表英语的小时(小于10为一位数写法),如5、12
* G代表英语的小时(小于10仍为两位数写法),如05、12
* h代表英语的分钟(小于10为一位数写法),如5、12
* H代表英语的分钟(小于10仍为两位数写法),如05、12
* j代表英语的日期(小于10为一位数写法),如08-02-09
* l代表中文的星期(包括“星期”这两个字),如星期五、星期七
* m代表英语的月份(小于10仍为两位数写法),如05、12
* M代表英语的月份(以单词的形式显示),如Jun
* n代表英语的月份(小于10为一位数写法),如5、12
* O代表英语的时区,如+0800
* r代表完整的日期时间,如Tue, 06 Jun 2006 18:37:11 +0800
* S代表日期的序数后缀,如st、th
* T代表英语的时区(以单词的形式显示),如CST
* w代表英语的星期,如5、7
* W代表周数,如23
* y代表两位数年份,如07、08
* Y代表四位数年份,如2007、2008
* z代表天数,如156

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

wordpress4.5已经发布了 赶快来下载试试吧!

在今天wordpress4.5 已经发布了  由于工作原因天天在电脑别上 然后看看博客什么的 正好看到了 就更新了

QQ截图20160413145446

其实wordpress4.5 早就在内侧的了,今天终于发布 有几个很不错的功能

在编辑文章的时候我们总是会有用到插入url 然后以前我们插入url的时候都会弹出来一个大框 感觉比较麻烦 还有就是你想选择某篇文章的链接的时候要找或者是搜索也比较麻烦 而现在你不需要那么麻烦了 看图

QQ截图20160413150712当你选择你想要有链接的文章的时候点击url图标就会出现这个东西 然后我是在里面 打了一个搜索 然后就出来了 带有搜索的一些页面

QQ截图20160413150733 这里就是我直接打了一个链接

然后这个就是我最喜欢的一个功能真的很不错  不过让我不爽的就是我 我刚才测试了 这样设置的链接是不会在新窗口打开的  这让我很不爽

然后wordpress4.5 在图片的编辑也有多了一些功能 这个我就没有去测试了 你们可以去试试

然后还是有一个也是文章编辑的一个功能在word里面也有的 那就是 当你在一个空行哪里输入三“-”再按回车的时候 就会变成这样


这个还不错 挺好用的

好了说了怎么多相信你们也应该看懂了

wordpress4.5百度云下载:http://pan.baidu.com/s/1dF16r53

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>

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