根据 WordPress 模板结构,WordPress 会使用 author.php 文件,如果没有,就会使用 archive.php 文件,如果还是没有,最后就会使用 index.php 文件来显示博客的某个作者的文章列表。 所以如果你想改变你的博客作者列表页面的样子,需要创建一个 author.php 文件,如果不存在,通过拷贝 archive.php,如果 archive.php 也不存在,那就拷贝 index.php吧。 如果你想显示作者的网站,邮箱和个人履历等这些资料,让读者更多地了解这个作者。可以加上以下代码: Articles by <?php the_author(); ?> Author Website: <?php the_author_url(); ?> Author Email: <?php the_author_email(); ?> Author Bio: <?php the_author_description(); ?> 标签:WordPress 技巧
页面
WordPress 技巧:把页面从搜索结果中排除
默认情况下,WordPress 搜索结果显示发布的日志和页面,如果你想把页面从 WordPress 搜索结果中排除,在当前主题的 functions.php 文件中添加如下的函数: add_filter(‘pre_get_posts’,’search_filter’); function search_filter($query) { if ($query->is_search) { $query->set(‘post_type’, ‘post’); } return $query; } 当然,你也可以把 post_type 设置为 page,这样搜索结果只有页面。 标签:WordPress 技巧
WordPress 技巧:在注册页面显示自定义消息
如果你的 WordPress 博客是开放注册,并且你想在注册界面给用户做些自定义信息提示,你可以在当前主题的 functions.php 文件加入以下代码: add_action(‘register_form’, ‘wpjam_register_message’); function wpjam_register_message() { $custom_message = ‘ <div style=”margin:10px 0;border:1px solid #e5e5e5;padding:10px”> <p style=”margin:5px 0;”> 欢迎注册我爱水煮鱼。 </p> </div>’; echo $custom_message; } 标签:WordPress 技巧
WordPress 教程:创建多人博客作者页面
根据前面的 WordPress 技巧:创建博客作者页面 的介绍,今天咱们来完成一个适合多人博客的作者存档页面。可以显示作者的网站,邮箱和个人履历等这些资料,让读者更多地了解这个作者。 第一步:添加适合你博客的资料选项。 添加符合自己需求的资料选项比如: Twitter、Facebook、Google+、新浪微博、腾讯微博、搜狐微博、我的豆瓣、QQ 空间和删除不符合自己需求的资料选项比如: YIM AIM Jabber 资料选项,在 functions.php 文件中添加如下代码: add_filter( ‘user_contactmethods’, ‘ts_add_contact_fields’ ); function ts_add_contact_fields( $contactmethods ) { $contactmethods[‘twitter’] = ‘Twitter’; $contactmethods[‘googleplus’] = ‘Google+’; $contactmethods[‘facebook’] = ‘Facebook’; $contactmethods[‘weibo’] = ‘新浪微博’; $contactmethods[‘tencent’] = ‘腾讯微博’; $contactmethods[‘sohu’] = ‘搜狐微博’; $contactmethods[‘douban’] = ‘我的豆瓣’; $contactmethods[‘qzone’] = ‘QQ空间’; unset( $contactmethods[‘yim’] ); unset( $contactmethods[‘aim’] ); unset( $contactmethods[‘jabber’] ); […]
WordPress 技巧:显示同个父页面的其他子页面的链接
假设有一个父页面,然后它有一些子页面。当打开父页面的时候,你想在 sidebar 显示它的子页面的链接。 当打开子页面链接的时候,你还是想要显示它同个父级下的所有一组链接。现在问题是,首先要判断现在的页面时是相同父页面的其他子页面。我们无法通过一个简单 WordPress 函数就能解决这个问题。 <?php global $post; if($post->post_parent){ $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0"); } else { $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0"); } if ($children) { echo '<ul>'; echo $children; echo '</ul>'; } ?> 标签:WordPress 技巧
WordPress 技巧:只在相关页面导入 Contact Form 7 的 JS 和 CSS
Contact Form 7 是一个非常强大并且易用的联系表单的插件,我在很多项目中都用到它,但是这个插件有个很不好的地方,会在整个博客的所有前台页面都导入 Contact Form 7 的 JavaScript 和 CSS 代码,对于性能要求极致的我们,当然不允许这样的事情发生,所以我们可以通过下面的代码实现只在含有 Contact Form 7 表单的页面导入 Contact Form 7 的 JS 和 CSS 代码。 add_action ( 'wp_enqueue_scripts', 'wpjam_cf7_enqueue_scripts', 99 ); function wpjam_cf7_enqueue_scripts(){ wp_dequeue_script('contact-form-7'); if(is_page('contact')){ $in_footer = true; if ( 'header' === WPCF7_LOAD_JS ) $in_footer = false; wp_enqueue_script( 'contact-form-7', wpcf7_plugin_url( 'includes/js/scripts.js' ), array( 'jquery', 'jquery-form' ), […]

WordPress 教程:自定义页面(Page)的模板样式
WordPress 中存在两种信息发布形式:文章(Post)和页面(Page),在写如何自己定义某个页面的特殊样式之前,有必要为一些新手简单介绍一下它们之间的区别,已经了解的朋友请跳过本节。 WordPress 中文章(Post)和页面(Page)的区别 WordPress 既然作为一个小型的 CMS 系统,文章肯定是最核心的内容。WordPress 中的文章是正文主体内容,一般可以随时修改、变动,文章之间有比较明确的时间、分类、标签等等相关关系。 而一个 CMS 中,肯定不能只包含正文文章,一般在底部都包含了诸如“关于我们”、“联系我们”等页面,WordPress 中的页面就是比较静态比较固定内容的页面,一般是独立的,与其他内容不太相关。如果有相关的内容,一般是父子关系,即父页面下面的子页面。而且页面可以很方便的定义“别名”(slug),也就是方便的自定义页面的链接。 自定义 WordPress 中的页面(Page)模板 页面结构、样式,在 WordPress 的主题目录中的 page.php 中定义,所有的页面都是一种结构和样式下,只是替换了一些内容而已。这势必无法满足我们的一些个性需求。 举个例子,一般来说页面的模板就跟文章的模板差不多,一个标题加上正文内容和下面评论。如果我博客的某个页面,想要展示的是我的作品集,而我的作品集想用一些并排的方块样式展示而不是以传统文章的形式展示。那么,就需要来自定义这个页面模板了。强大的 WordPress 系统已经考虑到我们这种合理的不合理需求,并提供了两种强大的自定页面的方法: 在后台选项指定当前页面要调用的模板文件 使用主题文件优先级规则来覆盖默认页面模板 在通过这两种方法自定义页面样式之前,请先确保你已经做出了一个可以使用的页面模板文件,不然的话本文是没有什么意义的。为了简便,本人用几个字来做演示。 在后台指定当前页面要调用的模板文件 当我们新建或者编辑一个页面的时候,在右侧的“页面属性”一栏里面会有一个“模板”选项,里面提供了可以选择的模板,我们只需要选中某个模板,就可以对当前的页面使用这个模板来显示。 你可能会问,为什么我的页面编辑页面没有这个选项?只有你的主题至少包含一个页面模板,这个地方才会检测出来并显示出来,然后提供选择。如果你没有自定义的页面模板,有什么必要出现这个选项? 我们现在就来创建自己的模板文件,方法很简单: 随便新建一个文件,然后自己写好 HTML 结构和对应的 CSS 样式以及 WordPress 的内容调用函数等,然后在最顶部加上如下的注释: <?php /* Template Name: 潜行者m 的 page 模板测试 */ ?> 加上之后,你就制作了一个名字为“潜行者m 的 page 模板测试”的页面模板了。这个文件可以随便命名,而且可以随便放在一个新建的文件夹中。一般比较推荐的方法是,新建一个名为“page-template”或者相关名字的文件夹,专门用来放置页面模板。只要某个文件带有这个注释并且放置在当前主题的目录中,就会被 WordPress 发现,然后就会出现在后台的选项中。 再说一下,这个页面模板可以是任意的内容,不一定复制原有的结构,可以自由发挥。如果没有调用什么 […]
WordPress 技巧:给每个页面都设置不同的菜单
做项目总是有一些很奇怪的要求,比如有些客户需要给每个页面设置不同的菜单,但是这些总是难不倒 WordPress: <?php /* Plugin Name: WPJAM 自定义菜单 Plugin URI: http://wpjam.com Description: 实现每个页面都设置不同的菜单 Version: 0.1 Author: Denis Author URI: http://wpjam.com */ add_action('init','wpjam_register_nav_menus_init'); function wpjam_register_nav_menus_init(){ global $wpdb; $sql = "SELECT meta_value FROM {$wpdb->prefix}postmeta WHERE meta_key = 'nav_menu';"; $nav_menus = $wpdb->get_col($sql); if($nav_menus){ foreach ($nav_menus as $nav_menu){ if($nav_menu){ register_nav_menu( $nav_menu, $nav_menu); } } } } add_action('save_post', 'wpjam_save_nav_menu_options'); function […]

