仿dedecms模板wordpress主题—wp-cms

新勺网主题,仿dedecms官方模板。具备织梦特点,颜色清新养眼,用到很少的插件实现功能呢,不错的作品,就是细节有待完善比如标题的字数控制等等。。
这个作者现在不知道咋地,音信全无,我觉得这个主题不错就拿来做W7C了。
看到还有很多人喜欢,所以分享一下。。
里面需要修改的东西挺多的,大家自己斟酌斟酌吧。
有什么不明白的,可以在此留言。大家交流交流。。。
演示:http://w7c.info,即本站。
下载地址:http://hjyl.org/wpcms

WP主题技巧: 为主题添加管理选项

过去一年, 我先后发布了 Elegant Box 和 Block 两个 WordPress 主题. 对于主题的制作虽不如老手, 但在完善的过程中对主题灵活性的要求却是体会颇深.
用户对界面的要求是各不相同的, 一个主题做下来就一个样是不能满足用户的. 他们会改你的主题 (烧刻的 Feed 地址也得改上去吧), 并向你提出各种问题直到你应接不暇.
对用户来说, 页面上的一些东西可能会常变的 (比如: 公告). 作为主题制作者应该考虑到这样的一些问题并灵活处理, 以免用户频繁的修改代码.
为此, 我们可以为主题添加一些管理选项, 用户可以在后台通过修改这些选项的值令主题有不一样的表现.
为主题添加一些管理选项并不是难事, 你只要回写完第一个选项处理, 其他选项的处理就迎刃而解了.
我们这次用 WordPress 自带的主题 classic 作为例子, 创建一个首页公告栏的管理选项.
本教程需要一定的 HTML 基础, 并对 PHP 有初步了解.
好, 我们这就说说怎么处理.

后台处理

首先, 我们要修改 function.php, 主要的处理工作都在这个文件里面, 如果主题没有这个文件, 就创建一个吧. (没有 function.php 说明主题不支持 Widget, 可不是一个好习惯哦, 还是赶紧新建一个吧, 想让主题支持 Widget 可以看看这里: 让主题支持 Widget)
我的处理包括 3 大块: 获取选项, 初始化, 标签页操作界面. 我这里只创建一个公告栏, 包括两个选项 (是否显示公告栏和公告栏内容). 如果要添加更多选项, 也只需要代码中 3 个 TODO 的位置上追加一些代码而已. 当然, 你还需要改一下选项名称, 将 Classic 和 classic 全部之换掉.
我已经在代码中标注了大量注释, 下面看看代码吧.

 
/**
 * 选项组类型
 */
class ClassicOptions {
 
	/* -- 获取选项组 -- */
	function getOptions() {
		// 在数据库中获取选项组
		$options = get_option('classic_options');
		// 如果数据库中不存在该选项组, 设定这些选项的默认值, 并将它们插入数据库
		if (!is_array($options)) {
			$options['notice'] = false;
			$options['notice_content'] = '';
			// TODO: 在这里追加其他选项
			update_option('classic_options', $options);
		}
		// 返回选项组
		return $options;
	}
 
	/* -- 初始化 -- */
	function init() {
		// 如果是 POST 提交数据, 对数据进行限制, 并更新到数据库
		if(isset($_POST['classic_save'])) {
			// 获取选项组, 因为有可能只修改部分选项, 所以先整个拿下来再进行更改
			$options = ClassicOptions::getOptions();
 
			// 数据限制
			if ($_POST['notice']) {
				$options['notice'] = (bool)true;
			} else {
				$options['notice'] = (bool)false;
			}
			$options['notice_content'] = stripslashes($_POST['notice_content']);
 
			// TODO: 在这追加其他选项的限制处理
 
			// 更新数据
			update_option('classic_options', $options);
 
		// 否则, 重新获取选项组, 也就是对数据进行初始化
		} else {
			ClassicOptions::getOptions();
		}
 
		// 在后台 Design 页面追加一个标签页, 叫 Current Theme Options
		add_theme_page("Current Theme Options", "Current Theme Options", 'edit_themes', basename(__FILE__), array('ClassicOptions', 'display'));
	}
 
	/* -- 标签页 -- */
	function display() {
		$options = ClassicOptions::getOptions();
?>
 

	
		

/>

} } /** * 登记初始化方法 */ add_action('admin_menu', array('ClassicOptions', 'init')); ?>

前台处理:

要公告栏在首页上显示, 需要修改一下 index.php, 这个比较简单, 只是通过一些判断语句决定东西要不要显示出来而已. 当然, 你可以进行其他操作, 关键是获取到选项的值, 并对它们进行处理.
其实可以分为两步:
1. 获取选项 (对每个 PHP 文件, 获取一次就行了, 可以在文件顶部执行)
2. 对选项进行处理 (这里判断成立的话就将公告内容显示出来)


转自http://www.neoease.com/add-options-to-your-wordpress-theme/

主题技巧: 让主题支持 Widget

昨天跟俩同学吹水了一天, 心情不错. 临睡前有行善的冲动, 帮网友小改了一下主题. 任务比较简单, 只是为一个三栏主题添加对 Widget 的支持而已.
事后有网友认为这样的做法欠妥, 要么鼓励收费, 要么授人以渔. 我想想也有道理, 打算以后少干这些活, 但多聊聊这些事. 就先从这次简单的案例开始说吧.

单侧边栏

functions.php

if( function_exists('register_sidebar') ) {
	register_sidebar(array(
		'before_widget' => '
  • ', // widget 的开始标签 'after_widget' => '
  • ', // widget 的结束标签 'before_title' => '

    ', // 标题的开始标签 'after_title' => '

    ' // 标题的结束标签 )); } ?>

    sidebar.php

      if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>
    • 标题 1

      • 条目 1.1
      • 条目 1.2
      • 条目 1.3
    • 标题 2

      • 条目 2.1
      • 条目 2.2
      • 条目 2.3

    双侧边栏

    functions.php

    if( function_exists('register_sidebar') ) {
    	register_sidebar(array(
    		'name' => 'Sidebar_1', // 侧边栏 1 的名称
    		'before_widget' => '
  • ', // widget 的开始标签 'after_widget' => '
  • ', // widget 的结束标签 'before_title' => '

    ', // 标题的开始标签 'after_title' => '

    ' // 标题的结束标签 )); register_sidebar(array( 'name' => 'Sidebar_2', // 侧边栏 2 的名称 'before_widget' => '
  • ', // widget 的开始标签 'after_widget' => '
  • ', // widget 的结束标签 'before_title' => '

    ', // 标题的开始标签 'after_title' => '

    ' // 标题的结束标签 )); } ?>

    sidebar.php

      if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('sidebar_1') ) : ?>
    • 标题 1

      • 条目 1.1
      • 条目 1.2
      • 条目 1.3
      if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('sidebar_2') ) : ?>
    • 标题 2

      • 条目 2.1
      • 条目 2.2
      • 条目 2.3

    N 侧边栏

    请使用数学归纳法进行推理.
    参考教材: 人民教育出版社全日制普通高级中学教科书数学第三册
    转自http://www.neoease.com/wordpress-widget-support/

    找不到脚本文件Program FilesWinrarMonitor.jse

    今天计算机被木马入侵,大部分的软件都无法打开了,窗口提示说无法找到脚本文件“Program Files\Winrar\Monitor.jse”。还好后来不知怎么着又打开了IE,在百度知道找到了修复方法。赶紧留下这篇文章备用。
    上网时下东西后主页被篡改了,后来我恢复之后快捷方式都不能用了 ,说脚本错误,窗口提示无法找到脚本文件“Program Files\Winrar\Monitor.jse”
    以下是解决办法:这样做一定会恢复的~·(我就只用了第一步就解决了我也是win7旗舰版。。)希望有帮助
    一、
    1、确认注册表能用,打开–运行,输入“regedit.exe”,“编辑”里搜索:HKEY_CLASSES_ROOT\lnkfile\shell\open\command,删掉右面出现的字符串。
    2、如果再回到打开桌面图标时出现:“该文件没有程序与之关联来执行该操作,请在控制面板的文件夹选项中创建关联”字样时的解决方法为如下:
    用记事本复制以下全部代码,将文本的“.txt”修改为“.reg”,双击导入就OK了。
    代码如下:

    Windows Registry Editor Version 5.00
    [HKEY_CLASSES_ROOT\.lnk]
    @="lnkfile"
    [HKEY_CLASSES_ROOT\.lnk\ShellEx]
    [HKEY_CLASSES_ROOT\.lnk\ShellEx\{000214EE-0000-0000-C000-000000000046}]
    @="{00021401-0000-0000-C000-000000000046}"
    [HKEY_CLASSES_ROOT\.lnk\ShellEx\{000214F9-0000-0000-C000-000000000046}]
    @="{00021401-0000-0000-C000-000000000046}"
    [HKEY_CLASSES_ROOT\.lnk\ShellEx\{00021500-0000-0000-C000-000000000046}]
    @="{00021401-0000-0000-C000-000000000046}"
    [HKEY_CLASSES_ROOT\.lnk\ShellEx\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]
    @="{00021401-0000-0000-C000-000000000046}"
    [HKEY_CLASSES_ROOT\.lnk\ShellNew]
    "Command"="rundll32.exe appwiz.cpl,NewLinkHere %1"
    [HKEY_CLASSES_ROOT\lnkfile]
    @="快捷方式"
    "EditFlags"=dword:00000001
    "IsShortcut"=""
    "NeverShowExt"=""
    [HKEY_CLASSES_ROOT\lnkfile\CLSID]
    @="{00021401-0000-0000-C000-000000000046}"
    [HKEY_CLASSES_ROOT\lnkfile\shellex]
    [HKEY_CLASSES_ROOT\lnkfile\shellex\ContextMenuHandlers]
    [HKEY_CLASSES_ROOT\lnkfile\shellex\ContextMenuHandlers\Offline Files]
    @="{750fdf0e-2a26-11d1-a3ea-080036587f03}"
    [HKEY_CLASSES_ROOT\lnkfile\shellex\ContextMenuHandlers\{00021401-0000-0000-C000-000000000046}]
    [HKEY_CLASSES_ROOT\lnkfile\shellex\DropHandler]
    @="{00021401-0000-0000-C000-000000000046}"
    [HKEY_CLASSES_ROOT\lnkfile\shellex\IconHandler]
    @="{00021401-0000-0000-C000-000000000046}"
    [HKEY_CLASSES_ROOT\lnkfile\shellex\PropertySheetHandlers]
    [HKEY_CLASSES_ROOT\lnkfile\shellex\PropertySheetHandlers\ShimLayer Property Page]
    @="{513D916F-2A8E-4F51-AEAB-0CBC76FB1AF8}"
    

    经过以上一番折腾后 您再去打开桌面的东东看 OK了吧
    二、如果进入注册表,提示“注册表被管理员禁用”,则操作如下:
    1、运行——gpedit.msc——用户配置——管理模板——系统——阻止访问注册表编辑器(禁用注册表编辑工具)——禁用
    2、如果1不行,则可尝试或者自己动手制作一个解除注册表锁定的工具,就是用记事本编辑一个任意名字的.reg文件,比如recover.reg,内容如下(粘贴到记事本):

    REGEDIT4
    [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem]
    DisableRegistryTools=dword:00000000
    

    然后双击 recover.reg ,yes.
    即可。
    3.如果1和2全部失败,则建一个inf文件,内容如下:

    [Version]
    Signature= NT$
    [DefaultInstall]
    ADDREG=Myadd
    [Myadd]
    ;解禁注册表编辑器
    HKCU,SoftwareMicrosoftWindowsCurrentVersionPoliciesSystem,DisableRegistryTools,1,0
    

    CSS属性书写顺序

    从下面是 mozilla 建议的CSS属性书写顺序
    (mozilla 即mozilla基金会,是为支持和领导开源的Mozilla项目而设立的一个非营利组织。推出了著名的火狐/firefox浏览器)
    /* mozilla.org Base Styles
    * maintained by fantasai
    * (classes defined in the Markup Guide – http://mozilla.org/contribute/writing/markup)
    */
    /* Suggested order:
    //显示属性
    * display
    * list-style
    * position
    * float
    * clear
    //自身属性
    * width
    * height
    * margin
    * padding
    * border
    * background
    //文本属性
    * color
    * font
    * text-decoration
    * text-align
    * vertical-align
    * white-space
    * other text
    * content
    *
    */

    注册Google企业应用套件电话无效的解决方法

    注册了google app engine,想要绑定域名。要求是必须先注册Google企业应用套件。
    现在注册Google企业应用套件有一点要注意:在添地址的时候不能选“中国”了。可以选“中国香港”。电话号码刚开始随便输了几个数字,提示输入无效。
    后来改了个比较正常点的137********,也是不行。
    后来查了下香港的区号是+852,可是在输号码的时候就不能输+852 137********了。
    有两点要注意。第一,区号要写成00852之后再输号码(空一格也行,不空格也没问题)。第二,号码长度最好是8位,而且尽量不要用1开头的,比 如”13659874”就不行。建议用2打头的,像我输的号码就是“00852 26256232”,即使是“00852 23456789”也可用的。