分类目录归档:wordpress

wordpress数据库简单应用手动重设密码和更改域名

http://spoint.babyshoot.cn/archives/2009/06/wordpress.html

1.更改域名

问题:虽然我们并不主张这样做,但也许有时你需要在保留博客和数据的同时改变博客的域名。由于WordPress把域名存储在数据库中,所以为了把新域名和博客连接起来,你必须更改数据库。

解决方法:

1. 登陆phpMyAdmin,选中你的WordPress数据库。
2. 点击”SQL”,打开SQL命令窗口,输入以下命令更改URL:

UPDATE wp_options SET option_value = replace(option_value,  'http://www.oldsite.com', 'http://www.newsite.com') WHERE option_name =  'home' OR option_name = 'siteurl';

3. 使用以下语句替代所有日志的相对URL(guid全局唯一标识符)

UPDATE wp_posts SET guid = replace(guid, 'http://www.oldsite.com','http://www.newsite.com');

4. 搜索wp_posts表并替代其中的URL,以确保没有老的URL存在了:

UPDATE wp_posts SET post_content = replace(post_content, 'http://www.oldsite.com', 'http://www.newsite.com');

5. 完成!现在可以使用新URL登陆WordPress控制台了。

注解:为了更快地更改WordPress域名,我选择使用超级有用的MySQL函数”replace,”,这会完全替代所有需要替代的内容。

2.手动重设密码

问题:为了增加博客安全性,许多博主选择不易被破解的密码,如u7*KoF5i8_。这当然很好,但问题在于博主自己忘记密码的事情也时常发生啊。

解决方法:密码丢失后,WordPress会给你邮箱发送密码重设链接。但如果你在注册时使用的邮箱现已不可用,或你想使用简单语句执行这个操作的话,可参考以下步骤:

1. 登陆phpMyAdmin,选中你的WordPress数据库并打开SQL窗口。
2. 输入以下语句(假设你的用户名是”admin”):

UPDATE `wp_users` SET `user_pass` = MD5('PASSWORD') WHERE `wp_users`.`user_login` =`admin` LIMIT 1;

3. 完成了!你的密码已更改成功。

注释:用户密码存储在wp_users表格中。当然,WordPress使用了MD5哈希保护密码。

我们要使用”UPDATE” SQL语句和内置的MD5() MySQL函数来把密码转化为MD5算法形式,然后更新。”WHERE”从句使系统只更新管理员的密码。不带有”WHERE”从句会导致系统更新所有的密码。

【WordPress】修改主题时常用到的内置函数(二)

http://epavel.cn/archives/732

前一篇文章中主要介绍了一些WordPress内置的条件判断和调用博客信息的函数,要想DIY一下有自己风格的主题仅靠这些还是不够的,这次就继续说一下还有哪些函数可以帮助我们更好的修改甚至编写属于自己的主题。

<?php get_header(); ?> : 调用Header模板,加载header.php文件。

<?php get_sidebar(); ?> : 调用Sidebar模板,加载sidebar.php文件。

<?php get_footer(); ?> : 调用Footer模板,加载footer.php。

<?php the_content(); ?> : 显示内容(Post/Page),其有参形式为:<?php the_content( $more_link_text, $strip_teaser, $more_file ); ?>,其中$more_link_text为添加more标签后显示的链接文字,默认为“more…”;$strip_teaser为布尔 值,true表示隐藏more标签前的文字,false表示显示该部分文字,默认为false;$more_file表示more链接指向的文件,现在一 般用不到这个参数了。

<?php if(have_posts()) : ?> : 检查是否存在Post/Page,一定注意if()语句后的冒号“:”,它是if语句开始的标志,一般以<?php endif; ?>表示if语句的结束。

<?php while(have_posts()) : the_post(); ?> : 如果存在Post/Page则予以显示。

<?php endwhile; ?> : While 循环结束。

<?php the_time(‘字符串’) ?> : 显示时间,时间格式由“字符串”参数决定,参数格式按照php语法规则填写。

<?php comments_popup_link(); ?> : 正文中的留言链接。如果使用 comments_popup_script() ,则留言会在新窗口中打开,反之,则在当前窗口打开。

<?php the_title(); ?> : 内容页(Post/Page)标题,带参形式为<?php the_title($before, $after, $echo ); ?>,$before为字符串类型,显示在标题前面,$after显示在标题后面,二者默认值均为空。

<?php the_permalink() ?> : 内容页(Post/Page) 的Url。

<?php the_category(‘,’ ) ?> : 特定内容页(Post/Page)所属Category,有参形式为<?php the_category( $separator, $parents, $post_id ); ?>,$separator为分隔两个分类链接的字符或文字,默认的是将这些链接放在无序列表中;$parents表示是否显示子分类与父分类之间 的关系,当取值为“multiple”时表示显示,取值为“single”时不显示。

<?php the_author(); ?> : 显示作者

<?php the_ID(); ?> : 特定内容页(Post/Page) ID

<?php edit_post_link(); ?> : 如果用户已登录并具有权限,显示编辑链接,有参形式为<?php edit_post_link( $link, $before, $after, $id ); ?>,$link表示编辑链接的文字,默认为“__(‘Edit This’)”,$before和$after分别表示链接前或后的文字,默认为空。

<?php get_links_list(); ?> : 显示Blogroll中的链接,可以按链接名称为链接排序,此时调用方式为get_links_list(‘name’),还可以按ID排序,get_links_list(‘id’)。

<?php comments_template(); ?> : 调用留言/回复模板,载入comments.php文件,有参形式为<?php comments_template( $file, $separate_comments ); ?>,$file为文件地址,默认为“/comments.php”, $separate_comments为布尔值,判断是否按评论类型来区分评论,默认为false。

<?php wp_list_pages(); ?> : 显示Page列表,有参形式为<?php wp_list_pages( $args ); ?>,$args为数组参数,其数组元素如下:

$args = array(
‘depth’        => 0,
‘show_date’    => ,
‘date_format’  => get_option(‘date_format’),
‘child_of’     => 0,
‘exclude’      => ,
‘include’      => ,
‘title_li’     => __(‘Pages’),
‘echo’         => 1,
‘authors’      => ,
‘sort_column’  => ‘menu_order, post_title’,
‘sort_order’   => ‘ASC’,
‘link_before’  => ,
‘link_after’   => ,
‘exclude_tree’ =>  )

根据其各元素名称不难猜出它代表的含义,如果一一介绍足够再写一篇了,大家可以参考官方文档http://codex.wordpress.org/Function_Reference/wp_list_pages

<?php wp_list_categories(); ?> : 显示Categories列表,和上一个函数相似,它也有一个数组参数,有参形式为<?php wp_list_categories( $args ); ?>,$args具体如下:

$args = array(
‘show_option_all’    => ,
‘orderby’            => ‘name’,
‘order’              => ‘ASC’,
‘show_last_update’   => 0,
‘style’              => ‘list’,
‘show_count’         => 0,
‘hide_empty’         => 1,
‘use_desc_for_title’ => 1,
‘child_of’           => 0,
‘feed’               => ,
‘feed_type’          => ,
‘feed_image’         => ,
‘exclude’            => ,
‘exclude_tree’       => ,
‘include’            => ,
‘hierarchical’       => true,
‘title_li’           => __( ‘Categories’ ),
‘number’             => NULL,
‘echo’               => 1,
‘depth’              => 0,
‘current_category’   => 0,
‘pad_counts’         => 0,
‘taxonomy’           => ‘category’,
‘walker’             => ‘Walker_Category’ )

官方详细介绍链接:http://codex.wordpress.org/Template_Tags/wp_list_categories

<?php next_post_link(‘%link’); ?> : 下一篇文章链接,有参形式为<?php next_post_link(‘format’, ‘link’, ‘in_same_cat’, ‘excluded_categories’); ?>,format为链接的样式,默认为“%link &raquo;”; link为链接文字,默认为“%title”; in_same_cat为布尔值,表示下一篇文章是否为相同目录内的文章,默认为false;excluded_categories表示下一篇文章所在 的目录范围,如1 and 5 and 15”表示下一篇文章在ID1515的分类中选出。

<?php previous_post_link(‘%link’); ?> : 上一篇文章链接,用法同上。

<?php get_calendar(); ?> : 显示日历

<?php wp_get_archives() ?> : 显示内容存档,同样具有一个数组参数,数组结构如下:

$args = array(
‘type’            => ‘monthly’,
‘limit’           => ,
‘format’          => ‘html’,
‘before’          => ,
‘after’           => ,
‘show_post_count’ => false,
‘echo’            => 1 )

<?php posts_nav_link(); ?> : 导航,显示上一篇/下一篇文章链接,制作分页页码时经常用到,有参形式为<?php posts_nav_link(‘sep’,’prelabel’,’nextlabel’); ?>,prelabel表示前一页的链接文字,nextlabel表示后一页的链接文字,sep表示分隔二者的字符或文字。

<?php include(TEMPLATEPATH ./ ‘文件名’); ?> : 嵌入其他文件,可为定制的模板或其他类型文件

<?php echo get_num_queries();?>: 显示页面需要执行的数据库查询次数,通过了解查询次数你可以判断一下自己主题的加载速度快或是慢。

总算把这一话题写完了!能想到的主要函数就这么多了,呵呵,希望对新手能有帮助,老鸟们就多多批评指正。本打算是对几个函数做一下简要介绍的,不料 竟然写出来这么多东西,这是我始料未及的,现在甚至有翻译WordPress官方帮助文档的冲动了!呵呵,都来DIY自己的主题吧!

无折腾,不WP!

PS:这两天实验室网络老是抽疯,时不时地就断线,不知道哪个环节出问题了,回复怠慢或回访不及时还请大家谅解!

【WordPress】修改主题时常用到的内置函数(一)

http://epavel.cn/archives/706

上篇文章中提到了利用插件调用WordPress自带的判断函数来实现不同页面显示不同侧边栏的效果。新的问题随之提出来了,WordPress到底有哪些自带的函数可以让我们随意调用呢?Pavel就分两篇文章给大家简要的罗列一下——

基本条件判断函数:

is_home() : 判断是否为主页
is_single() : 判断是否为日志页
is_page() : 判断是否为页面类型(page)
is_category() : 是否为Category/Archive页
is_tag() : 是否为Tag存档页
is_date() : 是否为指定日期存档页
is_year() : 是否为指定年份存档页
is_month() : 是否为指定月份存档页
is_day() : 是否为指定日存档页
is_time() : 是否为指定时间存档页
is_archive() : 是否为存档页
is_search() : 是否为搜索结果页
is_404() : 是否为 “HTTP 404: Not Found” 错误页
is_paged() : 主页/Category/Archive页是否以多页显示

以上函数返回值都是布尔值,用法都差不多。我们以is_single()为例,其严格的调用方式应该为:

<?php is_single($post); ?>

参数$post可以传递文章的ID,或文章的标题(title),或者文章的别名(Slug,即你发布文章时可以选择一个简短的标题,可以是标题拼音,可以是标题翻译,这就是Slug),参数缺省时默认为判断当前页面。WordPress官方给出的使用实例如下:

is_single();
//判断是否是具体文章的页面
is_single(’17′);
//判断是否是具体文章(id=17)的页面
is_single(‘Irish Stew’);
//判断是否是具体文章(标题判断)的页面
is_single(‘beef-stew’);
//判断是否是具体文章(slug判断)的页面
is_single(array(17,’beef-stew’,’Irish Stew’));
//如果文章id是17、或者标题是Irish Stew、或者slug是beef-stew时就返回true,在WordPress2.5版本之后才有的该功能。

你可以在wp-includes/query.php中找到is_single()函数的原型。其它的函数用法也大同小异,不再一一介绍,你可以参考WordPress官方的帮助文档:

http://codex.wordpress.org/Function_Reference/

其实使用该帮助文档有个小窍门,你可以在上边链接的最后加上函数名来检索该函数,比如要查看is_tag()函数,则在地址栏输入

http://codex.wordpress.org/Function_Reference/is_tag

博客信息的常用调用方式:

<?php bloginfo(‘name’);?> : 博客名称(Title)

<?php bloginfo(‘stylesheet_url’); ?> : CSS文件路径

<?php bloginfo(‘pingback_url’); ?> : PingBack Url

<?php bloginfo(‘template_url’); ?> : 模板文件路径

<?php bloginfo(‘version’); ?> : WordPress版本

<?php bloginfo(‘atom_url’); ?> : Atom Url

<?php bloginfo(‘rss2_url’); ?> : RSS 2.o Url

<?php bloginfo(‘url’); ?> : 博客 Url

<?php bloginfo(‘html_type’); ?> : 博客网页Html类型

<?php bloginfo(‘charset’); ?> : 博客网页编码

<?php bloginfo(‘description’); ?> : 博客描述

<?php wp_title(); ?> : 特定内容页(Post/Page)的标题

bloginfo()这个函数和get_bloginfo()有些相似之处,不过前者可以直接将相关信息输出出来,没有返回值,而后者是有返回值的,比如说同样是输出博客名称,前者是用这种方式:

<?php bloginfo(‘name’); ?>

而后者是

<?php echo get_bloginfo ( ‘name’ ); ?>

这样清楚了吧?可以根据自己的喜好进行调用。

wp_title()这个函数在进行博客标题优化的时候常会用到,用来控制页面的标题,如在文章页面,则显示文章标题;在分类页面,则显示分类名称;等等。它可以跟三个参数,调用原型如下:

wp_title(‘separator’,echo,seplocation)

其中 separator是title和其余部分之间的分割符号,默认是>>;echo是个布尔值变量,取true显示标题,取false则将标题 作为一个PHP参量返回;seplocation定义分隔符的位置,取right定义分隔符在标题后面,取其他任何值,都表示将分隔符放在标题前面。

这个函数的用法完全看个人的喜好,比如默认的分隔符号“>>”你可以自行修改,博客标题与文章标题的显示顺序你也可以自行修改,尽情发挥想象吧!

还想继续写关于模板函数的一些介绍的,但篇幅有限,太长的文章有耐心读完的童鞋不多。下篇再继续吧!希望会对你有帮助!有关于本文的疑问欢迎给我留言!

WordPress主题模板修改基本知识

WordPress主题模板修改基本知识

http://www.graygift.com/wordpress/wordpress-template-modified-basic-knowledge-of-the-subject/

我也修改了很多的主题,对主题中所写的一些数据库查询语句也有了一些认识!找出来给那些要修改主题的人!

WordPress基本模板文件
style.css : CSS(样式表)文件
index.php : 主页模板
archive.php : Archive/Category模板
404.php : 404页面,错误页模板
comments.php : 留言/回复模板
footer.php : Footer模板
header.php : Header模板
sidebar.php : 侧栏模板
page.php : 内容页(Page)模板
single.php : 内容页(Post)模板
searchform.php : 搜索表单模板
search.php : 搜索结果模板

基本条件判断Tag
is_home() : 是否为主页
is_single() : 是否为内容页(Post)
is_page() : 是否为内容页(Page)
is_category() : 是否为Category/Archive页
is_tag() : 是否为Tag存档页
is_date() : 是否为指定日期存档页
is_year() : 是否为指定年份存档页
is_month() : 是否为指定月份存档页
is_day() : 是否为指定日存档页
is_time() : 是否为指定时间存档页
is_archive() : 是否为存档页
is_search() : 是否为搜索结果页
is_404() : 是否为 “HTTP 404: Not Found” 错误页
is_paged() : 主页/Category/Archive页是否以多页显示

Header部分常用到的PHP函数
<?php bloginfo(’name’); ?> : 博客名称(Title)
<?php bloginfo(’stylesheet_url’); ?> : CSS文件路径
<?php bloginfo(’pingback_url’); ?> : PingBack Url
<?php bloginfo(’template_url’); ?> : 模板文件路径
<?php bloginfo(’version’); ?> : WordPress版本
<?php bloginfo(’atom_url’); ?> : Atom Url
<?php bloginfo(’rss2_url’); ?> : RSS 2.o Url
<?php bloginfo(’url’); ?> : 博客 Url
<?php bloginfo(’html_type’); ?> : 博客网页Html类型
<?php bloginfo(’charset’); ?> : 博客网页编码
<?php bloginfo(’description’); ?> : 博客描述
<?php wp_title(); ?> : 特定内容页(Post/Page)的标题

模板常用的PHP函数及命令
<?php get_header(); ?> : 调用Header模板
<?php get_sidebar(); ?> : 调用Sidebar模板
<?php get_footer(); ?> : 调用Footer模板
<?php the_content(); ?> : 显示内容(Post/Page)
<?php if(have_posts()) : ?> : 检查是否存在Post/Page
<?php while(have_posts()) : the_post(); ?> : 如果存在Post/Page则予以显示
<?php endwhile; ?> : While 结束
<?php endif; ?> : If 结束
<?php the_time(’字符串’) ?> : 显示时间,时间格式由“字符串”参数决定,具体参考PHP手册
<?php comments_popup_link(); ?> : 正文中的留言链接。如果使用 comments_popup_script() ,则留言会在新窗口中打开,反之,则在当前窗口打开
<?php the_title(); ?> : 内容页(Post/Page)标题
<?php the_permalink() ?> : 内容页(Post/Page) Url
<?php the_category(’, ‘) ?> : 特定内容页(Post/Page)所属Category
<?php the_author(); ?> : 作者
<?php the_ID(); ?> : 特定内容页(Post/Page) ID
<?php edit_post_link(); ?> : 如果用户已登录并具有权限,显示编辑链接
<?php get_links_list(); ?> : 显示Blogroll中的链接
<?php comments_template(); ?> : 调用留言/回复模板
<?php wp_list_pages(); ?> : 显示Page列表
<?php wp_list_categories(); ?> : 显示Categories列表
<?php next_post_link(’ %link ‘); ?> : 下一篇文章链接
<?php previous_post_link(’%link’); ?> : 上一篇文章链接
<?php get_calendar(); ?> : 日历
<?php wp_get_archives() ?> : 显示内容存档
<?php posts_nav_link(); ?> : 导航,显示上一篇/下一篇文章链接
<?php include(TEMPLATEPATH . ‘/文件名’); ?> : 嵌入其他文件,可为定制的模板或其他类型文件

与模板相关的其他函数
<?php _e(’Message’); ?> : 输出相应信息
<?php wp_register(); ?> : 显示注册链接
<?php wp_loginout(); ?> : 显示登录/注销链接
<!–next page–> : 将当前内容分页
<!–more–> : 将当前内容截断,以不在主页/目录页显示全部内容
<?php timer_stop(1); ?> : 网页加载时间(秒)
<?php echo get_num_queries(); ?> : 网页加载查询量

WPer必备:汇编大量WordPress代码

http://sofish.de/410

如果你是一个设计者,或只是喜欢自己修改现在所用的主题,收集你需要的Wordpress代码可能是一个很麻烦的事。从开始到现在,收集这些代码片断我花了大量的时间,我坚定认为如果把它全部写在一篇文章上,作为参考,那可能会更方便&有用。

WordPress Code

下面这些是我成功收集到的代码片断。如果你有Wordpress需要我添加的,请在下面留下言。

  • 显示最新文章

    1. <?php query_posts('showposts=5'); ?>
    2. <ul>
    3. <?php while (have_posts()) : the_post(); ?>
    4. <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
    5. <?php endwhile;?>
    6. </ul>
  • 显示最新评论

    1. <?php
    2. global $wpdb;
    3. $sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID,
    4. comment_post_ID, comment_author, comment_date_gmt, comment_approved,
    5. comment_type,comment_author_url,
    6. SUBSTRING(comment_content,1,30) AS com_excerpt
    7. FROM $wpdb->comments
    8. LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID =
    9. $wpdb->posts.ID)
    10. WHERE comment_approved = '1' AND comment_type = '' AND
    11. post_password = ''
    12. ORDER BY comment_date_gmt DESC
    13. LIMIT 10";
    14. $comments = $wpdb->get_results($sql);
    15. $output = $pre_HTML;
    16. $output .= "\n<ul>";
    17. foreach ($comments as $comment) {
    18. $output .= "\n<li>".strip_tags($comment->comment_author)
    19. .":" . "<a href=\"" . get_permalink($comment->ID) .
    20. "#comment-" . $comment->comment_ID . "\" title=\"on " .
    21. $comment->post_title . "\">" . strip_tags($comment->com_excerpt)
    22. ."</a></li>";
    23. }
    24. $output .= "\n</ul>";
    25. $output .= $post_HTML;
    26. echo $output;?>
  • 显示热评文章

    1. <?php $result = $wpdb->get_results("SELECT comment_count,ID,post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , 10");
    2. foreach ($result as $topten) {
    3. $postid = $topten->ID;
    4. $title = $topten->post_title;
    5. $commentcount = $topten->comment_count;
    6. if ($commentcount != 0) { ?>
    7. <li><a href="<?php echo get_permalink($postid); ?>" title="<?php echo $title ?>"><?php echo $title ?></a></li>
    8. <?php } } ?>
  • 显示文章分类

    1. <h2>Categories</h2>
    2. <ul>
    3. <?php wp_list_cats('sort_column=name'); ?>
    4. </ul>
  • 显示归档

    1. <h2>Archives</h2>
    2. <ul>
    3. <?php wp_get_archives('type=monthly'); ?>
    4. </ul>
  • 在侧栏显示页面列表

    1. <h2>Pages</h2>
    2. <ul>
    3. <?php wp_list_pages('title_li='); ?>
    4. </ul>
  • 调用Gravatar(只适应2.5以上)

    1. <br />

    1. <?php if(function_exists(’get_avatar’)){ echo get_avatar($comment, ‘50?);} ?>
  • 显示友情链接

    1. <ul>
    2. <?php get_links_list(); ?>
    3. </ul>
  • 显示管理员链接

    1. <ul>
    2. <?php wp_register(); ?>
    3. <li><?php wp_loginout(); ?></li>
    4. <li><a href="http://www.wordpress.org/">WordPress</a></li>
    5. <?php wp_meta(); ?>
    6. <li><a href="http://validator.w3.org/check?uri=referer">XHTML</a></li>
    7. </ul>
  • 在侧栏显示页面的子页面

    1. <?php$children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0');
    2. if ($children) { ?><ul> <?php echo $children; ?>
    3. </ul>
    4. <?php } ?>
  • 显示Wordpress标签

    1. <br />

    1. <?php the_tags(); ?>
  • 显示Wordpress标签云

    1. <?php wp_tag_cloud('smallest=8&largest=36&'); ?>
  • 模板标题

    1. <br />

    1. <?php /* Template Name: Portfolio */ ?>
  • 动态标题标签

    1. <title><?phpif (is_home()) { echo bloginfo('name');
    2. } elseif (is_404()) {
    3. echo '404 Not Found';
    4. } elseif (is_category()) {
    5. echo 'Category:'; wp_title('');
    6. } elseif (is_search()) {
    7. echo 'Search Results';
    8. } elseif ( is_day() || is_month() || is_year() ) {
    9. echo 'Archives:'; wp_title('');
    10. } else {
    11. echo wp_title('');
    12. }
    13. ?></title>  ++CoolCode_BLOCK_5++
  • 在独立页面中运行PHP

    1. <br />

    1. <?php if ( is_home() ) { include ('file.php'); } ?>

我希望这个列表可以不会过时,如果遇到更有用的代码,我将会更新这篇文章。

WordPress 设置中文时间格式

WordPress 设置中文时间格式

http://www.fengblog.com/wordpress-set-the-time-format-in-chinese.html

WordPress默认的文章发表时间是按照外国的书写习惯,要将它设置成符合我们中国人习惯的时间格式,比如2010年5月1日这种日期格式。

我们先看看默认主题中的时间格式代码:
<?php the_time(__(‘F jS, Y’, ‘kubrick’)) ?> <!– by <?php the_author() ?> –>
我们先要弄明白the_time函数里面的参数F,js,Y代表了什么意思,就可以将日期设置成任何自己的喜欢的格式了,看下面的表格:

参数 参数描述 输出时间格式
d 日期 06
j 日期 6
D 星期
F 月份 一月
g 小时 6
G 小时 06
h 分钟 6
H 分钟 06
a 上下午 am/pm
A 上下午 AM/PM
l 星期 星期一
m 月份 01
M 月份 Jan
n 月份 6
O 时区 +0800
r 完整的日期时间 Mon, 06 Jan 2010 20:30:10 +0800
S 序列型数字的后缀 st/th
T 时区 CST
w 星期 2
W 周数 22
y 年份 10
Y 年份 2010
z 天数 365