0

WordPress中如何按照分类调取不同模板

Posted by Alan on November 1, 2015 in Wordpress |

默认的分类模板文件为category.php,但通常在开发中的需求不会这么简单 分类页面按按分类调取不同模板 如果想要不同分类调取不同分类的话,可以使用category加中间杠后接需使用该模板的分类Id号或别名(slug)来进行命名,如category-2.php或category-wordpress.php 也可以通过在category.php中通过判断id号来调用不同模板,比如 上述方法可以还满足多个分类调用同一模板的需求,还有一种类似的方法,通过获取slug来调取对应的模板,如若模板不存在则调用默认的模板 以上代码可以精简为,因为在category-$slug.php不存在时,会自动调用该目录下的category.php 文章页面按所属分类调取模板 很多时候我们需要分类下的文章页面根据不同分类使用不同的模板,类似地,我们可以通过in_category()函数来判断文章所属分类来调用不同模板,该函数中可以传入分类id,也可以使用分类别名(slug) 另外一种方法是根据所属分类别名来创建模板,如content-wordpress.php,不存在的直接调用content.php。不过这个方法存在一个问题,就是当文章属于多个分类时,需从数组中选择一个分类。 独立页面调用不同模板 独立页面默认调用index.php作为模板,可通过新建page.php来作为独立页面模板。如果要单独为某一独立页面设置模板的话,可以在模板根目录中创建page-id.php,其中的id为该独立页面的id号。同样地,也可以采用页面别名page-slug.php的方式。  

Tags: ,

0

WordPress中多语言的实现方法

Posted by Alan on October 31, 2015 in Wordpress |

WordPress中有诸如qTranslate-X等插件可实现文章标题和内容的多语言,不过本文主要讲解模板开发中所涉及到的提示文本等的多语言实现。 首先需要在主题目录下创建一个languages文件夹,用于存放语言包文件。然后在模板目录下的functions.php,然后在代码中添加函数加载该文件夹,示例代码如下: 完成以上准备工作后就需要用到Poedit软件了 打开Poedit软件,如果已有语言包可在界面点击编辑翻译,否则点击文件>新建来创建您自己的语言包,然后在弹出窗口中选择要翻译的语言,本例中将英文翻译为中文,所以选择简体中文 然后点击工具栏中的保存按钮,保存到相应主题的languages目录中,名称为zh_CN.po,然后点击从源代码中提取,在弹出的编目属性窗口中设置源路径和源关键字,源路径采用主题根目录,源关键字这里使用Wordpress中默认的_e和__(前者直接输出,后者调取值),点击确定软件会自动解析所选目录下符合格式的文本(在代码中体现为_e(‘Category’,’alanhou’)或__(‘Author’,’alanhou’)),然后逐一翻译即可  

Tags: , ,

0

WordPress主题开发系列之自建模板

Posted by Alan on October 28, 2015 in Wordpress |

WordPress的默认集成有twentyfifteen之类的模板,位置在wp-content/themes下。如果想要安装或者开发主题,都需要在这个目录下来完成。 本例将在wp-content/themes目录下创建一个名为alanhou的文件夹,自开发的模板要求至少有index.php和style.css这两个文件。通常在style.css最上方会有一大段注释,用于在设置主题名称、版本等相关信息。细心的你一定还会发现在后台查看主题时还会有一张图片,这张图片来自主题文件夹下的screeshot.png, 建议大小为880*660px(或相似比例的图片)。 完成上述操作后在后台的效果如下 首先我们先在index.php中加入代码,调用主题CSS,并输出博客的标题和描述,主要用到了bloginfo(), get_option(), wp_header()和wp_footer()方法示例代码如下: 通过简单的css控制后就得到如下这样的头部 循环输出文章内容 侧边栏和翻页 调出翻页功能只需使用posts_nav_link()即可,而侧边栏使用get_sidebar(),如 通常需首先在functions.php中注册小工具(可同时注册多个小工具),这样才会在后台外观菜单下出现小工具从而进行拖放编辑,例如: 在主题根目录下创建sidebar.php,使用dynamic_sidebar()调出后台小工具中设置的内容(该函数中可传入register_sidebar中的name值) 但有时为防止小工具中未加入内容或者只是为了提高一些灵活性,也可以在side.php中自行加入相应模块,只需通过is_dynamic_sidebar()进行判断,然后输出相应模块即可。比如: 常用的封装文件 如同侧边栏一样,头部和底部通常也是相同的,所以较为推荐的做法是在主题目录下创建header.php和footer.php,然后使用get_header()和get_footer()函数来进行调用。 分类页模板: category.php 如果想要不同分类调取不同分类的话,可以使用category加中间杠后接需使用该模板的分类Id号或别名(slug)来进行命名,如category-2.php或category-wordpress.php 也可以通过在category.php中通过判断id号来调用不同模板,比如 还有一种类似的方法   文章页模板 single.php 除了前面介绍的方法外还可以通过previous_post_link()和next_post_link()来输出上一篇和下一篇文章标题链接,同是还可以自定义文本,如previous_post_link(‘上一篇:%link’) 文章页面后台编辑页面中可以添加自定义栏目,名称和值将存放在wp_postmeta表中,可通过get_post_meta()来获取,如 get_post_meta($post->ID, ‘test’, true),其中true返回字符串,false返回数组 独立页面模板 独立页面默认调用index.php作为模板,可通过新建page.php来作为独立页面模板。如果要单独为某一独立页面设置模板的话,可以在模板根目录中创建page-id.php,其中的id为该独立页面的id号。同样地,也可以采用页面别名page-slug.php的方式。 评论文件 评论文件为根目录下的comments.php,然后在相应位置中通过comments_template()进行调用,与评论相关的数据表为wp_comments, wp_commentmeta。 可以通过comments_open()方法判断是否开启了评论功能,对于文章页面可以通过讨论栏止开启或关闭评论(如未找到请点击右上角显示选项进行勾选显示), 对于有密码保护的页面可使用post_password_required()函数进行判断 comment_registration通过后台设置>讨论下的用户必须注册并登录才可以发表评论开启 搜索页面 和其它页面一样,如果没有search.php文件,搜索页将会调用index.php作为模板,所以请创建search.php文件作为搜索页面 404页面 和其它页面一样,如果没有404.php文件,404页面将会调用index.php作为模板,所以请创建404.php文件作为404页面

Tags: ,

0

WordPress SEO Ultimate插件去广告

Posted by Alan on October 27, 2015 in Wordpress |

很多使用Wordpress的朋友都会使用SEO Ultimate这个插件,它涉及到SEO的方方面面,比如可以通过它设置文章的title和description,同时对于没有编程基础的朋友通过Code Inserter来在header和footer中插入一些统计代码之类的JS也相当便捷,还可以在不调取服务器日志的情况下查看有哪些蜘蛛或个人访问过的404页面等等。 但是Alan经常在笔记本电脑上查看这个404页面报表时会发现右边的广告遮挡导致没有办法展开查看User Agent信息,很明显广告下方提到想要去除广告升级到SEO Ultimate+就好了,自然这是需要付银子的。于是对于这小小的不便Alan查看了一下代码,发现还是比较容易解决的。 具体解决方法(以最新版7.6.5.8为例),打开wp-content/plugins/seo-ultimate/modules/class.su-module.php将3062行以下的相关代码进行注释即可,注释后的代码如下:

Tags: ,

0

WordPress主题模板开发系列之数据库

Posted by Alan on October 19, 2015 in Wordpress |

数据库表前缀在安装时指定,记录在根目录下的wp-config.php的$table_prefix变量中,默认值为wp_,共11张表: 文章评论信息表 wp_commentmeta(文章评论额外信息表) wp_comments(文章评论信息表) 链接信息表 wp_links 基本配置信息表(对应后台设置>常规中的配置) wp_options 文章信息表 wp_postmeta(文章额外数据表,文章的自定义字段等所存储的表格) wp_posts 分类信息表 wp_terms(分类、标签的基础信息表) wp_term_relationships(分类与文章、链接、菜单的关联表) wp_term_taxonomy(分类补充信息表,区分terms信息的分类类型,有category, link, tag, nav_menu四种分类类型) 用户信息表 wp_usermeta(用户额外信息表) wp_users(用户基本信息表,存放系统所有用户基本信息)

Tags: , , ,

0

WordPress主题模板开发系列之核心文件

Posted by Alan on October 19, 2015 in Wordpress |

WordPress之强大不仅在于创建博客上,它还可用于搭建论坛、官网乃至电商网站。Alan使用Wordpress也有一些年头了,但一直都没有深入研究过,最近出于工作需要,决定学习Wordpress开发相关的知识,于是便有了这个Wordpress主题模板开发系列,边学习边总结。 第一步决定先从安装完成后的官方文件结构开始,打开Wordpress根目录,会看到如下文件或目录: 下面我就来逐个分析主要的文件或目录的作用 index.php – WordPress入口文件,调用wp-blog-header.php license.txt – WordPress授权许可文件 readme.html – WordPress安装、升级和在线资源等说明文件 wp-activate.php – 用户注册激活文件 wp-blog-header.php – 用于加载Wordpress的环境和模板,调用wp-load.php和 wp-includes/template-loader.php wp-comments-post.php – 接收评论并添加到数据库 wp-config.php – MySQL数据库连接信息的配置文件,安装后自动生成 wp-config-sample.php – wp-config.php的示例文件 wp-cron.php – 用于执行定时任务的文件 wp-links-opml.php – 生成OPML格式的友情链接列表(WordPress 3.5以后需安装Link Manager插件来添加友情链接) wp-load.php – 加载wp-config.php、设置路径常量、加载Wordpress类库 wp-login.php – 处理用户注册、登录、密码重置等的页面代码 wp-mail.php – 通过接收邮件发布文章 wp-settings.php – 运行前的例行程序,包括检查安装是否正确、使用辅助函数、应用用户插件、初始化执行计时器等等 wp-signup.php – 定义注册新用户账号、新分站的页面 wp-trackback.php – 处理Trackback请求 xmlrpc.php – 远程发布功能 […]

Tags: , ,

0

Worpress常用函数

Posted by Alan on October 15, 2015 in Wordpress |

为方便Wordpress的二次开发的常见修改,将在本帖中整理一些经常使用的Wordpress函数,以便查找。 主要文件和目录 index.php    首页 header.php    头部 footer.php    底部 sidebar.php    侧边栏 category.php    目录页 single.php   文章页 functions.php    主题自定义函数 style.css    主css文件 Action和Filter相关 add_action(‘alan’, ‘functionA’)    将函数functionA挂载到动作alan上,还有优先级等可选参数 do_action(‘alan’)    执行挂载在动作alan上的所有函数 WordPress内置的Action请参阅:http://codex.wordpress.org/Action_Reference add_filter(‘alan’, ‘functionA’)   将函数functionA挂载到过滤器alan上,还有优先级等可选参数 apply_filters(‘alan’, $arg)    将$arg传入挂载在动作alan上的所有函数并执行 WordPress内置的Filter请参阅:http://codex.wordpress.org/Plugin_API/Filter_Reference 首页分类相关 bloginfo()    获取博客相关信息 get_header() get_sidebar()    调用默认侧边栏的内容或sidebar.php的内容 register_sidebar()    用于在functions.php中注册小工具,在后台外观>小工具中进行编辑,并通过dynamic_sidebar()函数调用 get_footer() […]

Tags: ,

WordPress常见问题

Posted by Alan on May 23, 2014 in FAQ, Wordpress |

WordPress中如何为文章添加分页? WordPress中的行距问题 WordPress迁移或更换域名相关 迁移主机后图片无法上传 删除或限制Wordpress中的revision 如何为Wordpress添加Gzip压缩? WordPress如何切换域名? WordPress如何防渗透黑客攻击? WordPress如何为文章中指定关键词添加超链接? 访问后如出现File not found的报错(Nginx) 正在执行例行维护,请一分钟后回来。 如何自定义Wordpress登录后台 小技巧 1.Smartideo插件可用于直接输入QQ等视频网址而直接显示视频并自动适配电脑和移动端 另通过过vid获取QQ视频的网址方法:http://v.qq.com/page/y/o/0/{vid}.html 2.在Mac上编辑文章时可按下Command+Control+Space来调出Emoji窗口输入表情符号 3.Google字体库, Gravitar等国内访问慢的问题,可以通过WP Acceleration for China等插件解决这一问题,对应的文件在wp-includes/script-loader.php中   WordPress中如何为文章添加分页? 在Wordpress中发表较长的文章时,会希望添加分页的功能,避免一个页面中内容过于庞杂。在默认的编辑器(TinyCME)中,却找不到相应按钮,只有一个插入Read More的按钮。细心的朋友在插入Read More后进入代码编辑部分会看到<!–more–>(快捷键Alt+Shift+T)这样一行代码,事实上添加页面可以使用相似的方法,即在代码对应部分添加<!–nextpage–>(在视图编辑模式也可使用快捷键Alt+Shift+P),这样就可以实现分页的功能了。  Wordpress中的行距问题 在视图编辑窗口,按下Enter键会发现行距较大,中间间距占一行,事实上通过快捷键Shift+Enter 就不会出现大行距的情况了。 WordPress迁移或更换域名相关 WordPress迁移如同其它网站一样,需要两部分内容,一部分是网站代码文件,根据所使用系统不同位于public_html,www或htdocs等文件夹下;另一部分就是数据库文件(如使用phpmyadmin可使用export导出,import导入),可以分别打包进行迁移。如进行域名更换则需对后台Settings>General下Wordpress Address和Site Address的进行更换(也可更改数据库中wp_options表option name为siteurl和home的option_value值)。 对于已有内容的网站通常则更为复杂一些,因为之前的文章中会有链接、图片等内容写在wp_posts表中,以从www.foo.com/blog更换为blog.foo.com为例,需要对wp_posts表进行如下操作: 1.update wp_posts set guid = replace(guid, ‘http://www.foo.com/blog’,’http://blog.foo.com’) 2.update wp_posts set post_content = replace(post_content, ‘http://www.foo.com/blog’,’http://blog.foo.com’) 同时提醒各位关注.htaccess文件,很多时候需要对此文件也进行相应更改。 迁移主机后图片无法上传 这一错误提示内容类似:Unable to […]

Tags: , ,

0

博客迁移完成随笔

Posted by Alan on July 20, 2013 in Wordpress, 个人随笔 |

暂别的博客终于回归正常,最近由于工作计划以及迁移服务器等原因,博客已经搁置一段时间了,迁移服务器中迁移域名花去了较长的时间。将域名转移到另一家服务商并非难事,只要获取授权码,将域名置于解锁状态,然后在新的服务商按照迁移的程序注册该域名即可。只是这中间等待原服务商的最终确认需要花费一些时间,Alan大概用去了一周时间,原本博客也不至于宕机这么多天,我也在老域名服务商处将域名解析到了新的空间,只时本博客安装在子目录下,Alan也无心去重新修改至根目录,就导致中断了这么些无法访问。 在这次迁移中,还发现了.htaccess中一些不当代码导致报出500错误,原本以为是服务商的问题,后来确认才发现是这个问题。对于迁移内容没啥好说的,拷贝目录中所有内容,并导入数据库即可,当然还需要重新设置配置文件,wordpress默认在在wp-config.php中设置数据库名称、用户等信息。 Alan的博客七拼八凑也快满100篇,也见证了Alan的一些进步,当然在电子商务这一行学习新事物是一门必修课,在这方面还需要做更多的努力。 欣慰的是我的测试站http://liuantea.com/在短短的时间内排名在百度上也有了进步(六安茶叶网排名第一,六安茶叶排名第二,六安瓜片核心关键词也挤入前十页),主要还是内容建设,当然作为新站百度的收录页面还是很少的,这是没有办法的事,绿萝算法等更新对于新站内容页的收录就是非常缓慢。现在计划也很简单,先做内容建设一段时间,等差不多过了沙盒期之后再开始逐步进行社交整合、产品页面的优化等更深入的部分。既然是一个测试项目,我也不会急于实现什么目标,而且任何项目都不排除失败和犯错的可能性,平常心最重要。

Copyright © 2012-2018 记录点滴生活 | Alan Hou的个人博客 All rights reserved.