统计文章数量
我特别喜欢像这个博客一样统计文章的数量,随着自己每写一篇文章,看着数字在增长非常有成就感。下面这个方法就是教大家如何通过使用自定义字段在自己的博客上实现同样的功能。
这个办法执行起来非常简单,首先,在你的functions.php文件里添加下面的代码:
function updateNumbers() { global $wpdb; $querystr = "SELECT $wpdb->posts.* FROM $wpdb->posts WHERE $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type = 'post' "; $pageposts = $wpdb->get_results($querystr, OBJECT); $counts = 0 ; if ($pageposts): foreach ($pageposts as $post): setup_postdata($post); $counts++; add_post_meta($post->ID, 'incr_number', $counts, true); update_post_meta($post->ID, 'incr_number', $counts); endforeach; endif; } add_action ( 'publish_post', 'updateNumbers' ); add_action ( 'deleted_post', 'updateNumbers' ); add_action ( 'edit_post', 'updateNumbers' );
添加完成之后,你可以通过下面的代码显示文章号,注意下面的代码必须在循环里使用。
<?php echo get_post_meta($post->ID,'incr_number',true); ?>
来源: http://www.wprecipes.com/how-to-display-an-incrementing-number-next-to-each-published-post
允许用户上传文件
如果你像本文的作者一样,你的博客有其他客串文章,那么可能会觉得用户无法上传文件是比较遗憾的。因为大多数博客还是需要图片使文章更加吸引人。因此下面这个技巧就会显得非常方便: 只要在function.php文件里添加下面的代码,你的用户就可以在WordPress管理后台上传文件了,够酷吧?
if ( current_user_can('contributor') && !current_user_can('upload_files') ) add_action('admin_init', 'allow_contributor_uploads'); function allow_contributor_uploads() { $contributor = get_role('contributor'); $contributor->add_cap('upload_files'); }
来源: http://www.wprecipes.com/wordpress-tip-allow-contributors-to-upload-files
显示“xxx久以前发布”
Twitter上有个非常酷的功能就是可以显示一篇“推特”发表到现在已经多长时间。你也想在WordPress上实现这样的功能吗?在WordPress上也是可以实现滴。
只要在functions.php文件上粘贴这个代码,保存之后,只要是二十四小时内发布的文章就会显示“xxx久以前发布“而不是普通的发布时间。
add_filter('the_time', 'timeago'); function timeago() { global $post; $date = $post->post_date; $time = get_post_time('G', true, $post); $time_diff = time() - $time; if ( $time_diff > 0 && $time_diff < 24*60*60 ) $display = sprintf( __('%s ago'), human_time_diff( $time ) ); else $display = date(get_option('date_format'), strtotime($date) ); return $display; }
来源: http://aext.net/2010/04/display-timeago-for-wordpress-if-less-than-24-hours/
循环外的WordPress导航
WordPress有一些函数允许你链接以前的文章。不过这些函数得在循环内使用。 Digging into WordPress这本书的作者Jeff Starr解决了这个问题。
只要粘贴下面的代码到single.php文件,或者更好的办法是干脆把代码放到单独一个php文件,然后将它放到主题文件夹下。
<?php if(is_single()) { // single-view navigation ?> <?php $posts = query_posts($query_string); if (have_posts()) : while (have_posts()) : the_post(); ?> <?php previous_post_link(); ?> | <?php next_post_link(); ?> <?php endwhile; endif; ?> <?php } else { // archive view navigation ?> <?php posts_nav_link(); ?> <?php } ?>
来源: http://digwp.com/2010/04/post-navigation-outside-loop/
禁止主题切换
如果你是开发人员,为你的顾客创建了WordPress主题,你可以会碰到这样的问题:客户“发现”了WordPress后台并“不小心”更换了主题。
你可以使用WordPress中的actions轻松地删除“主题”菜单,这样就可以永远避免顾客更换主题的风险。只要在 functions.php文件粘贴下面的代码并保存之后,“主题”菜单就会消失。
add_action('admin_init', 'remove_theme_menus'); function remove_theme_menus() { global $submenu; unset($submenu['themes.php'][5]); unset($submenu['themes.php'][15]); }
来源: http://soulsizzle.com/quick-tips/stopping-clients-from-switching-their-wordpress-theme/
清除文章中不使用的短代码
WordPress是非常实用的,但也有一个缺陷: 假如你在文章中使用了一个短代码而之后又因为一些原因停止使用了,那么这个短代码 (假设是[shortcode] )还仍然会保留在你的文章中。
想要清除这些不使用的短代码,你只需要执行下面这行SQL代码。你可以通过PhpMyAdmin或者SQL命令行来实现。记得将[tweet] 用你想要清除的短代码代替。
UPDATE wp_post SET post_content = replace(post_content, '[tweet]', '' );
来源: http://www.wprecipes.com/wordpress-tip-get-rid-of-unused-shortcodes
计划性切换WordPress主题
最近我的一个项目挺有意思的,我需要自动切换博客主题。由于当前的WordPress主题名字是保存在WordPress数据库中的 wp_options表单,我们可以非常轻松地改变它。
最简单的办法就是使用update_option()函数,在你的functions.php文件中粘贴下面的代码:
function updateTheme($theme){ update_option('template', $theme); update_option('stylesheet', $theme); update_option('current_theme', $theme); }
在functions.php添加了这个函数之后,任何时候你都可以调用它:
<php updateTheme('default'); ?>
修改WordPress后台页脚文本
对于主题开发人员来说,还有一个好的建议就是修改下WordPress后台页脚的文本,例如,添加一个到你的支持论坛的链接。 你只需做的就是复制这个代码并粘贴到functions.php文件中: function remove_footer_admin () { echo "Your own text"; } add_filter('admin_footer_text', 'remove_footer_admin');
来源: http://www.wprecipes.com/wordpress-tip-how-to-change-the-dashboard-footer-text
定时在WordPress中发布文章
如果因为某些原因,你需要在WordPress数据库中定时自动加入文章,其实这个也非常简单。wp_insert_post() 有一个时间数组的参数并返回文章ID。
global $user_ID; $new_post = array( 'post_title' => 'My New Post', 'post_content' => 'Lorem ipsum dolor sit amet...', 'post_status' => 'publish', 'post_date' => date('Y-m-d H:i:s'), 'post_author' => $user_ID, 'post_type' => 'post', 'post_category' => array(0) ); $post_id = wp_insert_post($new_post);
来源: http://www.webmaster-source.com/2010/02/09/programmatically-creating-posts-in-wordpress
WordPress 3.0: 查询自定义内容类型
WordPress 3.0应该很快就会发布,不知道大家是否期待,我个人是相当期待的。我觉得WordPress3.0其中最为感兴趣的是:自定义内容类型。
为了能够从WordPress数据库中获取某一种类型的内容,你可以使用下面的循环,下面的代码就可以获得“albums” 类型的内容:
<ul> <?php global $wp_query; $wp_query = new WP_Query("post_type=albums&post_status=publish"); while ($wp_query->have_posts()) : $wp_query->the_post(); ?> <li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li> <?php endwhile; ?> </ul>
来源: http://www.catswhocode.com/blog/8-useful-code-snippets-to-get-started-with-wordpress-3-0
分类:新闻资讯