WordPress教程
      
      模板兔提供专业的wordpress建站教程、wordpress主题开发教程、wordpress插件开发教程、wordpress二次开发教程等。
       
      
      
          
         WordPress教程:我在WordPress后台某篇文章的编辑页面,给这篇文章选择了分类:WordPress,接着同时选择了标签:php、主题制作,这时分类(WordPress)就与标签(php、主题制作)建立了关联,利用这种关联我们实现很多种需求,最典型的是细化WordPress文章分类功能,在子分类无法达到我们的需求时,可以使用标签来细化。我只需要提供WordPress分类的id,就可以得到它关联的标签:php、主题制作。
调用函数
我们可以先在主题目录的下的functions.php添加以下函数:
function mobantu_get_category_tags($args) {
    global $wpdb;
    $tags = $wpdb->get_results
    ("
        SELECT DISTINCT terms2.term_id as tag_id, terms2.name as tag_na...
      
      
      
          
         WordPress教程:WordPress自带一项功能,就是访客对文章发表评论后,可以设置:在评论显示之前 须经由管理员审核,这可以避免了一些垃圾评论对网站的影响。对此,有评论等待审核时,WordPress会自动给网站管理员发送一封通知邮件,但是评论被管理员审核通过后,WordPress并不会给评论者发送通知,这会给正常的评论者造成一些困惑。
如何让评论通过审核后,给评论者发送一封通知邮件呢?我们可以在当前主题的functions.php中添加以下PHP代码:
add_action('comment_unapproved_to_approved', 'mobantu_comment_approved');
function mobantu_comment_approved($comment) {
  if(is_email($comment->comment_author_email)) {
    $post_link = get...
      
      
      
          
         WordPress教程:回复某位评论者的留言时,在留言前面加个 @评论者,这样可以更好地分辨是给谁回复。
也许网上已经有相关的教程,但是这里也分享一下我的实现方法,在当前主题functions.php中添加以下代码:
function mobantu_comment_add_at( $commentdata ) {
  if( $commentdata['comment_parent'] > 0) {
    $commentdata['comment_content'] = '@<a href="#comment-' . $commentdata['comment_parent'] . '">'.get_comment_author( $commentdata['comment_parent'] ) . '</a> ' . $commentdata['comment_content'];
  }
  return $commentdata;
}
add_action( 'preprocess_comment' , 'mobantu_comment_add_at', 20);
以...
      
      
      
          
         WordPress教程:首先,定义实现函数,将以下php代码复制到当前主题的functions.php中:
function mobantu_get_cat_postcount($id) {  //id是分类ID
   // 获取当前分类信息
   $cat = get_category($id);
   // 当前分类文章数
   $count = (int) $cat->count;
   // 获取当前分类所有子孙分类
   $tax_terms = get_terms('category', array('child_of' => $id));
   foreach ($tax_terms as $tax_term) {
      // 子孙分类文章数累加
      $count +=$tax_term->count;
   }
   return $count;
}
//使用方法
<?php echo 'ID为123的分类及其子孙分类的文章数量为:' . mobantu_get_cat_postcount(123);?>
      
      
      
          
         WordPress教程:什么是模板呢?默认情况 WordPress是使用主题目录下page.php来作为模板显示页面的,但是有时候我们需要不同的模板来显示页面,比如登录、注册和投稿页面等,这些页面跟普通的页面是有所区别,这时候WordPress提供了页面模板让开发者可以自定义WordPress页面外观甚至功能。
页面模板php文件的匹配
WordPress中是通过自定义栏目来记录页面所使用的模板的,自定义栏目名称:_wp_page_template,值为模板的文件名:
	如果是默认模板page.php,那么 _wp_page_template 的值为:default。如果从始至终都是默认模板,WordPress不会添加此自定义栏目
	如果是主题根目录下的自定义页面模板,那么那么 _wp_page_template 的值为文件名,如:page-l...
      
      
      
          
         WordPress教程:今天介绍的方法可以实现给多媒体添加独立的分类,而不必混用文章的分类,而且在WordPress后台的多媒体列表页可以直观显示媒体的分类。
使用方法,同样是在当前主题的functions.php中添加php代码:
function mobantu_create_media_category() {
  $args = array(
    'label' => '媒体分类',
    'hierarchical' => true,
    'show_admin_column' => true,
    'show_ui'      => true,
    'query_var'    => true,
    'rewrite'      => true,
  );
  register_taxonomy( 'attachment_category', 'attachment', $args );
}
add_action( 'init', 'mobantu_create_media_category' );
如果你不排斥使...
      
      
      
          
         WordPress教程:有些主题的特色图像会显示在文章内页里面,多数情况我们不想让它显示在内页里,那么我们可以添加一个选项控制显示。代码如下:
function prefix_featured_image_meta( $content ) {
 global $post;
 $text = __( 'Don\'t display image in post.', 'prefix' );
 $id = 'hide_featured_image';
 $value = esc_attr( get_post_meta( $post->ID, $id, true ) );
 $label = '<label for="' . $id . '" class="selectit"><input name="' . $id . '" type="checkbox" id="' . $id . '" value="' . $value . ' "'. checked( $value, 1, false) .'> ' . $text .'</label>';
 return $content .= $label;
}
add_filter( ...
      
      
      
          
         WordPress教程:将以下php代码复制到当前主题目录下的functions.php中,即可让WordPress支持使用中文用户名注册和登录:
function mobantu_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', '', $us...
      
      
      
          
         WordPress教程:当评论者添加评论的时候,WordPress默认不转义评论内容中的所有代码,这就意味着评论者在评论中输入 html 代码,其他访客查看到的评论就是被浏览器解释过的html内容!
上面说得可能很抽象,你可以尝试给你的文章添加以下评论内容:
<a href="http://www.example.com">送钱啦</a>
 评论添加成功后,是不是看到一个链接"送钱啦"呢?你点击看一下是什么效果。如果看不到"送钱啦"链接而是以上html代码,恭喜你,你的博客挺安全的,以下内容可看可不看。
 其实上面的代码只是超链接,没有任何恶意。但是你应该提高警惕了,并不是所有的评论者都是善意的,他们可能会往评论内容中添加恶意代码(典型方式:广告链接等)!另外,Word...
      
      
      
          
         WordPress教程:有时候我们想在首页每篇日志下像文章页single那样显示评论,但是 comments_template()直接放首页没有反应的。那么该如何实现呢?在WordPress主题的文章调用循环内,即 while (have_posts()) : the_post(); 和 endwhile; 之间适当位置,添加代码如下:
<?php
    global $withcomments;
    $withcomments = true;
    // 包含评论模板文件,自定义
    comments_template("/mobantu-comments.php");
?>
实现原理很简单,我在以上代码的第2行声明我将使用全局变量$withcomments,并将其值改成true。接着第6行包含用于在首页显示评论的模板inline-comments.php,为什么不使用默认的评论模板comments.php呢?
其实不管什么东...
      
      
      
          
         WordPress教程:很多时候我们往往只想搜索特定分类下的文章,但是大多数WordPress主题提供的搜索功能只支持搜索全部分类下的文章。那怎么办呢?修改一下主题模板中搜索框代码就可以了,代码如下:
<form action="<?php bloginfo('home'); ?>" method="get">
    <div>
        <input type="text" value="<?php echo wp_specialchars($s, 1); ?>" name="s" id="s" />
        <input type="hidden" name="cat" value="22" />
        <input type="submit" id="searchsubmit" value="Search" />
    </div>
</form>
搜索特定分类的方法是,给搜索表单附带一个name="cat"的input元素即可,...
      
      
      
          
         WordPress教程:在建站过程中,我们往往认为安装了主题插件就完事了,其实,还有很多细节是你在建站过程中需要注意的。
1.忘记或者忽略了网站备份
这是最常见的现象:买个域名,弄个空间,以Wordpress为核心建一个网站,放在那里不管了,网站备份什么的根本不知道或者不重视。
主机商也会出问题的啊,特别是数据库服务器(可能是因为磁盘读写量更大),特别是一些小的主机商或者是一些不负责任的主机商,更糟糕的情况是你用的主机服务是由一个既小有不负责任,还到处被人推荐主机商提供的,那更要尤其注意了:网站备份。
网站备份要备什么?简单来说:你的FTP中域名所绑定目录下的wp-content下的全部文件和文件夹再加上数据库备份(不要偷懒使用Wordpr...