为WordPress主题添加管理选项

2009年11月5日 2 条评论

后台处理

<?php

/**
 * 选项组类型
 */
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();
?>

<form action="#" method="post" enctype="multipart/form-data" name="classic_form" id="classic_form">
	<div class="wrap">
		<h2><?php _e('Current Theme Options', 'classic'); ?></h2>

		<!-- 公告栏 -->
		<table class="form-table">
			<tbody>
				<tr valign="top">
					<th scope="row">
						<?php _e('Notice', 'classic'); ?>
						<br/>
						<small style="font-weight:normal;"><?php _e('HTML enabled', 'classic') ?></small>
					</th>
					<td>
						<!-- 是否显示公告栏 -->
						<label>
							<input name="notice" type="checkbox" value="checkbox" <?php if($options['notice']) echo "checked='checked'"; ?> />
							 <?php _e('Show notice.', 'classic'); ?>
						</label>
						<br/>
						<!-- 公告栏内容 -->
						<label>
							<textarea name="notice_content" cols="50" rows="10" id="notice_content" style="width:98%;font-size:12px;" class="code"><?php echo($options['notice_content']); ?></textarea>
						</label>
					</td>
				</tr>
			</tbody>
		</table>

		<!-- TODO: 在这里追加其他选项内容 -->

		<!-- 提交按钮 -->
		<p class="submit">
			<input type="submit" name="classic_save" value="<?php _e('Update Options &raquo;', 'classic'); ?>" />
		</p>
	</div>

</form>

<?php
	}
}

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

?>

前台处理

<!-- 获取选项 -->
<?php $options = get_option('classic_options'); ?>

<!-- 如果用户选择显示公告栏, 并且公告栏有内容, 则显示出来 -->
<?php if($options['notice'] && $options['notice_content']) : ?>
	<div id="notice">
		<div class="content"><?php echo($options['notice_content']); ?></div>
	</div>
<?php endif; ?>

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

分类: 默认 标签:

Wordpress bloginfo标签使用详解

2009年10月30日 没有评论

‘description’ – blog描述
‘url’ – 您的blog地址
‘rdf_url’ – 您的 RDF/RSS 1.0 订阅地址
‘rss_url’ – 您的 RSS 0.92 订阅地址
‘rss2_url’ – 您的 RSS 2.0 订阅地址
‘atom_url’ – 您的 Atom 订阅地址
‘comments_rss2_url’ – 您的 comments RSS 2.0 (评论订阅)地址
‘pingback_url’ – 您的 Pingback (XML-RPC file) (引用通告)地址
‘admin_email’ – 管理员电子邮件地址
‘charset’ – 您blog的网页编码
‘version’ – 您的wordpress版本
‘text_direction’ – 您采用的文本对齐方式 html_type’ – 显示网页 “Content-type” 值
‘wpurl’ – 您的blog地址
‘template_url’ – 当前所使用主题的地址
‘template_directory’ – 当前所使用主题的目录
’stylesheet_url’ – 当前所使用主题的CSS样式表文件地址 your-active-theme-name(value from wp_options, “stylesheet” row) + “/style.css”(hardcoded in functions.php) stylesheet_directory’ – CSS样式表文件目录. (禁用于2.3.1版)

分类: 默认 标签:

wordpress调用某个分类下的文章

2009年10月30日 1 条评论
<?php $posts = get_posts( "category=4&numberposts=10" ); ?>
<?php if( $posts ) : ?>
<ul><?php foreach( $posts as $post ) : setup_postdata( $post ); ?>
<li>
<a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a>
</li>
<?php endforeach; ?>
</ul>
<?php endif; ?>

对于懂php的来说这个代码太简单不过了。呵呵,对于我等菜鸟级别的只需要知道

category=4&numberposts=10

是控制需要调用的大类的ID和输出文章条数就ok了。哈哈
转载自:http://www.sb123.org/965

分类: 默认 标签: ,

真是不錯的SyntaxHighlighter-Plus

2009年10月23日 没有评论

之前一直在找可以在 wordpress mu 版本下可用的 syntax highlighter, 試了許多都沒辦法很順利的使用, 到昨天找到了一個算可以用的版本, SyntaxHighlighter-Plus (連結). 怎麼說算可以用呢? 主要是因為他的目錄命名會和 wordpress mu內的urlrewrite 會有一些衝突, 因為他的目錄也有用到 “files” 這個關鍵字, 解決方式很簡單, 就是將 syntaxhighlighter-plus目錄內的 files 目錄改名, 並配合調整一下即可, 我將原來的 source 改了一下, 放到這裡來方便 wordpress mu 的用戶來安裝! SyntaxHighlighter-Plus for wordpress mu

使用方式原作者的說明很詳細了, 就是解壓安裝至 plugins 目錄後, 到後台啟用, 再於撰寫文章時, 切換至 “code”模式下(主要是避免 < > 角括號(小於, 大於符號會被 wordpress 編輯器改寫為 < 及 >), 使用[sourcecode language='xxx']程式碼[/sourcecode]的方式將程式碼包住就可以達到語法高亮的效果, 範例如下:

// default display_errors value is on
ini_set('display_errors', Off);
$display_errors = ini_get('display_errors');
echo "display_errors=$display_errors<br />";
echo "1/0<br />";
$a = 1/0;  // nothing happened.
ini_restore('display_errors');
echo "1/0<br />";
$a = 1/0;

要特別注意的是即使第一次使用了 “code” 編輯模式存檔, 再編輯時, wordpress 編輯器仍會再做 > < 的轉碼, 這個是很討厭的一個麻煩問題.

這套程式一樣基於 dp.SyntaxHighlighter 的程式碼開發, 看了一下 for wordpress 的這個版本, plugin 的作者很貼心的設計了多組參數來簡化輸入, 如下:

[source language='css']code here[/source]
[code language='css']code here[/code]
[sourcecode lang='css']code here[/sourcecode]
[source lang='css']code here[/source]
[code lang='css']code here[/code]
[sourcecode='css']code here[/sourcecode]
[source='css']code here[/source]
[code='css']code here[/code]
[lang='css']code here[ /lang](请自行去掉空格)
[css]code here[/css] (或者任何支持的语言)

另外還有他會針對該文章內使用的 sourcecode language的不同來進行 dp.SyntanHighlighter 的 js 載入, 例如只有 php 程式碼, 他就只載入 shBrushPhp.js , 當然 shCore.js 是一定都會載入的啦, 這樣的好處就可以節省了一些引入的 javascript 的 js 檔, 也相對比較快. 給各位參考!

转载自:http://tim.diary.tw/2008/03/05/syntaxhighlighter-plus/

分类: 默认 标签: ,

JS在客户端获取URL参数

2009年1月19日 没有评论

今天要做一个发送祝福的页面
不会弄数据库……所以只好用JavaScript在url上获取参数来解决了
最终目的是达到了……但是那个url长是长的有点吓人 :shock:

var url = document.URL; //URL参数
function GetUrlParam(url, paramName )
{
    var oRegex = new RegExp( '[\?&]' + paramName + '=([^&]+)', 'i' ) ;
    //var oMatch = oRegex.exec( window.top.location.search ) ; //获取当前窗口的URL
    var oMatch = oRegex.exec( url ) ;
    if ( oMatch && oMatch.length > 1 )
        return oMatch[1] ;  //返回值
    else
        return '' ;
}
分类: 默认 标签:

公司年会……很high很低俗

2009年1月17日 5 条评论

照片从dash的flickr上转来的,希望不会被BS :twisted:
阅读全文…

分类: 默认 标签:

突然发现显卡的一个功能……^_^

2009年1月4日 4 条评论

突然发现显卡有这个旋转显示器功能……加上显示器自己也有转轴,以后处理照片比较有爱^_^

阅读全文…

分类: 默认 标签:

linux学习笔记

2008年12月26日 没有评论

linux目录架构
/ 根目录
/bin 常用的命令 binary file 的目錄
/boot 存放系统启动时必须读取的档案,包括核心 (kernel) 在内
/boot/grub/menu.lst GRUB设置
/boot/vmlinuz 内核
/boot/initrd 核心解壓縮所需 RAM Disk
/dev 系统周边设备
阅读全文…

分类: 默认 标签:

CSS Sprites

2008年12月24日 没有评论

转贴自:http://realazy.org/blog/2007/10/08/css-sprites/
CSS Sprites技术不新鲜,早在2005年 CSS Zengarden 的园主 Dave Shea就在ALA发表对该技术的详细阐述。原先只在CSS玩家之间作为一种制作方法流传,后来出来个14 Rules for Faster-Loading Web Sites, 技术人员之间竞相传阅,其中第一条规则Make Fewer HTTP Requests就提到CSS Sprites。于是这个小妖精就火了起来,甚至出现了在线生成工具,势不可挡也。近来国内很多blog都提到CSS Sprites,最著名的例子莫过于 http://www.google.co.kr/ 下方的那几个动画。最新发布的YUI中,也是使用到CSS Sprites,几乎都有的CSS装饰图都被一个40×2000的图包办。社交大站Facebook最近也使用了一个22×1150的图片承担了所有icon. 一时间,CSS Sprites无处不在。
阅读全文…

分类: 默认 标签:

公司发的台历

2008年12月14日 没有评论
分类: 默认 标签: