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

数据库表前缀在安装时指定,记录在根目录下的wp-config.php的$table_prefix变量中,默认值为wp_,共11张表:

Wordpress数据库结构

文章评论信息表
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(用户基本信息表,存放系统所有用户基本信息)

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

WordPress之强大不仅在于创建博客上,它还可用于搭建论坛、官网乃至电商网站。Alan使用Wordpress也有一些年头了,但一直都没有深入研究过,最近出于工作需要,决定学习Wordpress开发相关的知识,于是便有了这个Wordpress主题模板开发系列,边学习边总结。

第一步决定先从安装完成后的官方文件结构开始,打开Wordpress根目录,会看到如下文件或目录:

Worpress根目录文件和目录
下面我就来逐个分析主要的文件或目录的作用

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 – 远程发布功能

wp-admin – 存放后台管理需要的类和文件
wp-includes – 存放wordpress强大的类库及核心函数的定义
wp-content – 存放语言包,插件、模板、上传文件等

仿写MagentoOK视频Nike模板

羊年春节刚刚过去,很遗憾没能回到老家和父母团聚,这几天在苏州除了吃饱睡足陪陪老婆孩子之外,也抽空看了一下之前收藏的MagentOK小雄princ0iple录制的一套Magento视频教程。(参见MagentoOK视频教程)

网上讲后台操作的视频比较多,但关于Magento开发的视频教程很少,这套教程是难得的讲的既全面又实用的一套视频教程,值得想要从事Magento开发的学员们进行学习。笔者之前主要套用别人模板,操作也多限于后台中的选项,终于腾出点时间自己接触了一下模板开发,以下是看完前三课后制作的效果,产品部分不太搭,随机找了一部分产品以方便演示:

仿写MagentoOK视频Nike模板

其中的幻灯片和左右按钮效果采用Easy Slider实现,圆角效果使用jQuery Corner插件来实现,示例代码如下:

jQuery(document).ready(function(){
	//幻灯片效果
	jQuery("#h-slider").easySlider({
		auto:true,
		continuous:true,
	});
	jQuery("#prevBtn a").html('');
	jQuery("#nextBtn a").html('');
	jQuery("#h-slider").css("height","418px");

	//圆角标签
	jQuery(".level0").corner("top").each(function(i){
		var thisLi=jQuery(this);
		thisLi.mouseover(function(){
			jQuery(".std .p-home-list").removeClass("conIn");
			jQuery(".level0").removeClass("first");
			jQuery(this).addClass("first");
			jQuery(".std .p-home-list").eq(i).addClass("conIn");
		});
	});
})

此外还有一些Magento中常用的方法可供参考
获取当前url

$this->getUrl('')

获取当前主题skin的url

$this->getSkinUrl('')

page.xml中加载js,css,调用当前目录skin目录中的js

<action method="addItem"><type>skin_js</type><name>js/jquery.1.5.js</name></action>

输出栏目商品列表:

{{block type="catalog/product_list" category_id="5" template="catalog/product/list.phtml"}}

产品页面图片显示修改文件为当前模板下template/catalog/product/view/media.phtml文件,实际图片输出代码为:

<?php echo $_helper->productAttribute($_product, $_img, 'image'); ?>

视频中通过jquery.jqzoom-core.js插件来实现了放大镜效果:

	jQuery('.jqzoom').jqzoom({
		zoomType:'standard',
		lens:true,
		preloadImages:false,
		alwaysOn:false,
	});

产品图片下方通常会有多个可切换的标签来展示产品细节、评论等内容,这里以评论为例,首先在当前模板layout/catalog.xml文件中添加调取评论相关文件:

<block type="review/product_view_list" name="product.info.product_additional_data" as="product_review" template="review/product/view/list.phtml">
  <block type="review/form" name="product.review.form" as="review_form"/>
</block>

输出评论的代码为(System>Configuration>Catalog>Product Reviews>Allow Guests to Write Reviews控制是否允许未登录客户评论)

<?php echo $this->getChildHtml('product_review') ?>