WordPress Guest Book Hack

基于MAX的“WordPress留言板教學”修改的,可能是由于叙述或特定模板的问题,很多没有php经验的人没能按MAX的方法改造成功,有兴趣的话,可以看看我修改的这篇教程,可能更有普遍性一些,懂php的就不要看了。

步骤
1,编辑 /wp-includes/comment-functions.php 是少不了的,用你喜欢的编辑器打开它,这里推荐Notepad2,(免费,有各种编码转换,自从看到AvP的推荐后我就一直用它)你应该可以立即看到下面这段,它就是第一个函数

PHP:
  1. function comments_template( $file = '/comments.php' ) {
  2. //省略数十行代码
  3.         }
  4.  


2,将其整段拷贝,粘贴在“}”下面那行,现在你应该有两个“function comments_template”了,将下面那个拷贝的

PHP:
  1. function comments_template
  2.  

改成

PHP:
  1. function guestbook_template
  2.  

在下面那份拷贝中找到两处

SQL:
  1. ORDER BY comment_date
  2.  

将它们改成

SQL:
  1. ORDER BY comment_date DESC
  2.  

这里的作用是让新的留言排在上面,这就是留言板和评论的区别了。

3,在 \wp-content\themes\你所使用的主题\ 里找到page.php,复制并改名为guestbook.php,编辑guestbook.php,在最开始加入:

PHP:
  1. <?php
  2. /*
  3. Template Name: Guestbook
  4. */
  5. ?>
  6.  

接下来就是和MAX不一样了,我觉得应该找到

PHP:
  1. <?php endwhile; endif; ?>
  2.  

但不要修改这些,在上面可以看到:

HTML:
  1.   </div>
  2. </div>
  3.  

在它们中间,插入

PHP:
  1. <?php guestbook_template(); ?>
  2.  

这样应该就可以了。
最后附上我的留言板模板代码,仅供参考:

PHP:
  1. <?php
  2. /*
  3. Template Name: GuestBook
  4. */
  5. ?>
  6.  
  7. <?php get_header(); ?>
  8.  
  9.         <div id="content">
  10.  
  11.         <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
  12.        
  13.                 <div class="post">
  14.                 <h1 id="post-<?php the_ID(); ?>"><?php the_title(); ?></h1>
  15.                         <div class="entrytext">
  16.                                 <?php the_content('<p class="serif">Read the rest of this page &raquo;</p>'); ?>
  17.        
  18.                                 <?php link_pages('<p><strong>Pages:</strong> ', '</p>', 'number'); ?>
  19.        
  20.                         </div>
  21.                         <?php guestbook_template(); ?>
  22.                 </div>
  23.                
  24.         <?php endwhile; endif; ?>
  25.         <?php edit_post_link('Edit this entry.', '<p>', '</p>'); ?>
  26.        
  27.         </div>
  28.        
  29. </div>
  30.  
  31. <?php get_sidebar(); ?>
  32.  
  33. <?php get_footer(); ?>