Wordpress theme hack - 自定义首页文章分类

换了新主题,想把关于自己的文章独立到一个页面里面,同时首页也不显示这分类里面的文章,G了一下,发现有如下的做法。

1.在一个单独页面里显示一个分类的文章

当然是新建一个php文档,在其上面输入:(注意去掉<? 和php 之间的空格)
<? php
/*
Template Name: second //你的模板名字
*/
?>

空一行后输入<? php get_header(); ?>

接着到重点:
<? php
$cat_id=123;//the category ID
$limit = get_option('posts_per_page');
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts('cat=' . $cat_id . '&showposts=' . $limit . '&paged=' . $paged);
$wp_query->is_archive = true; $wp_query->is_home = false;
?>

$cat_id就是输出文章的分类代码id,可以在Wp后台管理分类菜单里,鼠标指向某一分类时,IE底边栏会显示catID,假如需要显示多几个分类,可以用逗号’,'隔开

$limit就是每页输出文章的数量,这里取了wp后台设置的数值

$paged就是显示的页数,假如没有这个参数,则永远显示的是第一页,翻页是没有效果的

到了这里,下面的代码就和模板里的index代码相同,复制<? php get_header(); ?>后面的代码粘贴上去保存即可。

将编辑好的模板上传到空间,新建页面,在页面模板里选择该模板,不需要填入内容,发布即可。

2.首页不显示某分类

上面已经将一个分类独立到一个页面了,那么首页或许是应该设置不显示的,当然,这个选择权在自己。来看代码

<? php
$cat_id=-123;//the category ID
$limit = get_option('posts_per_page');
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts('cat=' . $cat_id . '&showposts=' . $limit . '&paged=' . $paged);
$wp_query->is_archive = true; $wp_query->is_home = false;
?>

请注意这段代码的$cat_id,它的值是-123,和刚才的不同,表示的是除开123分类的其他所有分类,当然,这个分类id也是可以叠加的,用逗号隔开。其他的代码内容是一样的。

将这段代码放在模板index.php里面的<? php get_header(); ?>后面<? php if (have_posts()) : ?>的前面的位置段,就可以了。那么首页就不会显示这个分类下的文章。

可能有朋友会问,为什么要在index.php里面改,像上面一样做一个模板页,创建一个新页面在后台设定为首页不就行了吗?其实这个方法我尝试过,结果就是首页能显示,而翻页之后,得出的结果和普通的翻页结果是一样的,并没达到“隐藏分类”的效果,可能是因为在翻页之后,调用的依然是index.php这个页面吧。

有位朋友说到在首页(index.php)里面添加了这段代码之后令到点击分类标签和日期标签的时候,显示的文章还是和首页的一样。其实这个和模板有很大的关系,关系在于这个模板文件–archive.php(存档页),假如你的模板里面没有这个文件的话,当点击分类(存档)或者日期(存档)标签的时候,wp会调用index作为模板来显示,由于在index.php里面添加了上面的代码,故显示出来的,还是首页的内容。

似乎是有插件可以实现让首页和单独页面显示不同分类文章的,但是我懒得找了,因为自己动手,丰衣足食。希望这篇文章对您有帮助,假如有什么问题,我们一起来探讨。

我的Yo2升级补丁

今天算是有空,发下牢骚。

模板篇

很多Yo2er都不断抱怨:“怎么我的模板又变成默认模板了”、“我的模板XXXXX又不见了”、 “我崩溃了……”

变成默认模板的解决方法很简单,到外观–>私有模板里面点击使用自定义模板,就可以恢复先前使用的模板了(OneoO早就说了)。在使用了私有模板后,也可以在该位置点击编辑私有模板进行修改。

某某部分不见了之类的问题,可能是因为WP版本的问题,导致部分功能函数不能使用。又或者部分关联到插件的,由于插件升级的缘故不能使用。

Yo2后台加入了几款偶很稀饭的模板,真爽……不过还是自己做算了。

插件篇

Yo2的插件变少了,可能是部分不兼容的缘故,OneoO进行了清理。

SRG Clean Archives,这个插件还在,升级了,功能代码有变:

<!--srg_clean_archives-->

同时,也多了插件选项页。

yo2sns,OneoO得力之作,在开启后,会有yo2sns选项页面进行设置。

Simple Tags,这个tag插件代替了原来的JK插件, 似乎更好用,功能更强大。

Google Analytics for WordPress,配合Google一款分析统计插件,假如自命E文够好,可以启用试试。

Wordpress函数篇

本人一般很少用自定义侧栏,一般都是手动写函数完成侧栏的编辑,既然Yo2升级到2.3.2版了。所以,新功能,还是要拿来爽一下先。

wp_tag_cloud,从古至今都受关注的标签云。使用方法:

<?php wp_tag_cloud('smallest=8&largest=22'); ?>

 

smallest为最小字号,largest为最大字号,单位是pt,默认显示使用最多的45个标签,可以使用number=0显示所有标签。

<?php wp_tag_cloud('smallest=8&largest=22&number=0'); ?>

 

the_tags,单篇文章tag。使用方法:

<?php the_tags(); ?> 或者 <?php the_tags('before', 'separator', 'after'); ?>

例如: <?php the_tags('Tags:', ', ', '<br />'); ?>

该函数要放在文章页面的while (have_posts()) : the_post(); ?>里面。

get_links,友情链接,功能和以前的wp_get_links()一样。

完结

先想到这么多了,有什么问题等想到再补充。

小小地Redirect一下

呵呵,AD这个问题已经出现很久了,之前我的Blog目录结构是/%category%/%postname%.html这种格式的,虽说感觉良好,不仅名字比较短(相比/%year%/%month%/%day%/%psotname%这种),但是由于偶的分类里面有个分类缩略名为–’ad’(万恶之首),故此分类下的文章 /ad/postname.html 全部会被某某浏览器或者某某杀毒软件“强奸”,导致未露面则身先死。昨天Cool同学又说了一下这个问题,我觉得真的需要整理一下了,但是ad分类里面的全部是Feedsky的参赛文章,如何是好呢(现在想想,理它那么多干嘛)。

本来想换个分类缩略名的,但是找不到方法将缩略名文章转到新缩略名的方法,虽然分类ID是相同的,本来以为 Permalink Redirect是有这种功能的,可是没发现。最后,只能更改永久链接了,也正中了 Permalink Redirect的下怀。

Yo2后台的 Permalink Redirect是0.7版本,作者已经更新到0.8了,没有插件管理权力,所以只能用0.7, Permalink Redirect的使用十分简单,启用插件,然后在选项里面就有 Permalink Redirect的设置页面Permalink Redirect Manager。在Old Permalink Structure上填写原来的Permalink(永久链接)格式,我的就是/%category%/%postname%.html了,在下面看到有你现在的Permalink格式,由于我已经在永久链接那里更新了Permalink,所以显示是/%postname%.html,即是去掉了分类目录,点更新,就完成Redirect(重定向)这个功能了。然后,在访问以前的页面地址的时候,会自动重定向到新的地址。

这个功能的好处是:更改永久链接格式而不用用害怕收录问题和PR值问题,因为这应该是301重定向,即向外界声明该地址(旧)永久性转移到新地址。

301转向(或叫301重定向,301跳转)是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。

当网页A用301重定向转到网页B时,搜索引擎可以肯定网页A永久的改变位置,或者说实际上不存在了,搜索引擎就会把网页B当作唯一有效目标。好处是,第一,没有网址规范化问题,第二,也很重要的,网页A的PR网页级别会传到网页B。

关于Permalink Redirect的文章网上实在太多了,有Nicky、我爱我家等等介绍,有兴趣的同学可以去翻翻,另外,E文够好的推荐到作者主页去寻求答案。

Pages:  1 2 3 4 ...6


@2007-2008 wgmcn.com All Rights Reserved.
Power by WordPress. Sea Blue theme by Kevin.

收藏 & 分享

Powered by 17fav.com