WordPress边注

0条评论

你想靠近某个人告诉他一些事情时,可以跟他说,“来,我们到一边说话”。在博客里当然也可以这样,只不过形式有些不同罢了。在WordPress中,博客作者传递给读者的小片信息叫做边注

边注(asides)又被称为remaindered links或linkblog,最初使用边注的是 Matt Mullenweg,WordPress创始人和主要开发者之一。随后边注的使用范围开始渐渐扩大,最后边注成为一种非常受欢迎的在博客中添加小段信息的方式。

WordPress支持边注功能,因此我们不需要重新安装一个WordPress博客来运行边注,唯一需要做的,就是添加几小行代码和一个新的分类。

使用边注时需要修改WordPress主循环(loop),不过请放心,只要仔细操作,一切都会很顺利。

用插件添加边注

我们可以通过MiniPosts2插件将任何一篇日志标识为“边注”,而不需要编辑代码或新建分类。MiniPosts2插件利用widgets plugin插件,使用户能够轻松调整边注在侧边栏的位置。只要点击日志编辑界面上的一个复选框,就可以将这篇日志标志为边注了。这里是MiniPosts2的插件地址。

另见SideBlog

利用AsideShop插件,用户无需修改主题模板就可以在博客首页上显示边注。在控制板中添加一个模板,然后将模板分配给存放边注文章的分类。AsideShop不会在日志或分类中添加任何信息。

修改代码添加边注

如果知道怎样编辑PHP文件,也可以用下面这两种方法来添加边注。

Matt的边注

photomatt.net上的边注

下面我们逐步介绍在网站上手动添加边注信息的过程,同时还会介绍一些能够让过程变得更简便的WordPress插件。

1. 备份WordPress主题中的index.php文件,文件通常存放在/wp-content/themes/yourtheme中。一定要备份,切记!

2. 在控制板>管理>分类中添加一个边注专用的分类。分类名称可以是边注或者其它。记住分类ID。我们在下面的例子中假设分类ID是14,但实际使用时还要将14改成实际的分类ID。

3. 在文本编辑器中打开主题的Index.php模板文件

4. 在文件中查找:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

为以上代码添加注释如下:

<?php //if (have_posts()) : while (have_posts()) : the_post(); ?>

5. 在注释后粘贴以下内容:

<?php
if ($posts)
{
function stupid_hack($str)
{
return preg_replace('|</ul>\s*<ul class="linklog">|', '', $str);
}
ob_start('stupid_hack');
foreach($posts as $post)
{
the_post();
?>

6. 接下来查找日期调用(<?php the_date(); ?>)代码行。复制以下内容到日期调用代码行后:

<?php if ( in_category(14) && !is_single() ) : ?>
<ul class="linklog">
<li id="p<?php the_ID(); ?>"><?php echo wptexturize($post->post_content); ?>
<span><?php comments_popup_link('(0)', '(1)',
'(%)')?> <a href="<?php the_permalink(); ?>"
title="Permalink: <?php echo 
wptexturize(strip_tags(stripslashes($post->post_title), '')); ?>"
rel="bookmark">#</a> <?php edit_post_link('(e)'); ?></span></li>
</ul>
<?php else: // If it's a regular post or a permalink page ?>

7. 在index.php文件下方查找:

<?php endwhile; else: ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>

8. 删除所找到的代码,并用以下内容代替:

<?php endif; // end if in category ?>
<?php
}
}
else
{
echo '<p>Sorry no posts found.</p>';
}
?>

完成!边注现在可以成功运行了。再稍微设计下边注的CSS样式就大功告成了。

设计边注样式

根据上面的逐步说明我们创建了一个基本的边注样式,现在要为边注加入一些独特信息,让它能够与我们的网站相匹配。

在边注的CSS代码中加入以下内容以设定边注样式:

ul.linklog li {
border:1px solid #ff0000;
font:Verdana;
font-size:14pt;
background-color:#ffff00;
}

ul.linklog li a {
text-decoration:none;
}

在侧边栏显示边注

noscope.com侧边栏中的边注

注意:以下内容与Matt的边注没有任何关系。两者是相互独立的,无法相互合作。

有时我们可能需要在侧边栏显示边注信息。打开当前主题的sidebar.php模板文件,在希望边注出现的位置上加入以下代码。如果希望边注显示在侧边栏列表外,要将以下代码放在无序列表(<ul>标签或作为列表项(<li>)出现在<ul>标签中)上方或下方:

<?php
if ($posts) : foreach ($posts as $post) : the_post();
?>
<?php if (in_category(14)) { ?>
<div class="asides_sidebar">
 <?php echo $post->post_excerpt ?> <?php the_content(); ?>
 <small><?php comments_popup_link(__('#'), __('(1)'), __('(%)')); ?>
   <?php edit_post_link('Edit', ' — '); ?></small>
</div>
<?php } ?>
<?php endforeach; else: ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>

然后根据自己的喜好在style.css样式表单中设定div "asides_sidebar"的CSS样式。

利用主循环中的一段代码,可以使侧边栏中的边注不出现在主循环中。

首先在index.php文件的主循环中找到以下代码行:

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

在代码行后加入以下内容(请将14替换成实际分类ID):

<?php if (in_category('14') && is_home() ) continue; ?>

之后继续查找下列代码:

<?php endwhile; ?>

在代码前加上:

<?php } ?>

完成以上所有操作后,在index.php文件或sidebar.php文件的主循环前输入以下内容:

<?php rewind_posts(); ?>

具体是在index.php还是在sidebar.php文件,由两者中出现在最后的文件决定。例如,如果在index.php中,<?php get_sidebar(); ?>出现在 <?php endif; ?>后,那么就需要在sidebar.php文件的主循环前输入<?php rewind_posts(); ?>。

大功告成!现在边注就会显示在侧边栏而不再出现在主循环中了。

相关资料