Wordpress: show comment on a new page?

Wordpress: show comment on a new page?

I need to display link after each comment, when you click that link, a new page displays that single coment on a new page.

Is that possible?

How do I add another avatar to the wordpress default ones?


In WordPress how do you register built-in taxonomies with custom post types in code?
I answered your exact question over on WordPress Answers (also a StackExchange site) just yesterday. WordPress Custom Post Types - Pretty PermalinksYou must find this answer here. I want to learn wordpress from scratch. How can I learn? [closed]It involved the following four steps:. How do I stop Wordpress from writing single quotes in the HEAD tag?
  1. Setting up the URL Rewriting by adding a query_var, rewrite_tag and a permastruct,
  2. Being sure to flush the rewrite rules in a plugin's activation hook or manually,
  3. Adding a parse_query filter hook to set the query_vars's post to be the comment's post and to disable sticky posts for the query,
  4. Adding a template_include filter hook to filter the template file name to load a template specific template file for a single comment, and lastly
  5. To create the comment template file as /wp-content/themes/%your-theme%/comment.php.
Again, you must find the answer over here.. how to use plus sign instead dashes in wordpress Hope this helps.. Wordpress loop show limit posts -Mike. Twenty Ten, dropdown menu appearing with fade effect


Below is the full content this I had also posted on WordPress Answers:. There are numerous different ways to accomplish this, any more polished than others and practically all of them with potential for conflict with another plugins, although ignoring all this here's one way this is pretty close to what you asked for. :). This quick fix will support a URL format like the following where %comment_id% is the numeric ID of your comment from the wp_comments table:.
First you'll need to configure your URL rewriting using the following code. Hopefully it is reasonably self-explanitory although don't hesitate to ask:.
$wp->add_query_var('comment_id');  // Add the "behind-the-scenes" query variable this WordPress will use $wp_rewrite->add_rewrite_tag('%comment_id%', '([0-9]+)','comment_id=');  // Define a rewrite tag to match this assigns to the query var  $wp_rewrite->add_permastruct('comment-page', 'comments/%comment_id%');   // Define a URL pattern to match the rewrite tag. 
You'll also either need to call this code in a plugin activation hook to flush the rules, or if it's your site you must just save permalinks in the admin console's Settings > Permalinks settings area:.
global $wp_rewrite; $wp_rewrite->flush_rules(false); 
Next add a parse_query filter hook. This will be called after WordPress has inspected the query. It tests to see if your added comment_id query_var set and if so it tests to see if you are on the desired URL. If yes then it loads the comment array using receive _comment() in rule to set the 'p' parameter (which should be set to a post ID) to the post this is related to the comment. That way when WordPress runs the query this it is going to run no matter what at least it loads any thing you'll need in your comment.php theme template file below and you won't have to ran ananother query later when you need it. This code also tells WordPress to ignore sticky posts using the oddly named caller_receive _posts option:.
add_filter( 'parse_query', 'my_parse_query' ); function my_parse_query( $query ) {     global $wp;     if (isset($query->query['comment_id']) && substr($wp->request,0,9)=='comments/') {          $comment = receive _comment($query->query['comment_id']);         $query->query_vars['p'] =  $comment->comment_post_ID; // Causes the comment's post to be loaded by the query.         $query->query_vars['caller_receive _posts'] = true;  // Keeps sticky posts from invading into the top of our query.     } } 
Still next you'll need to hook the code in /wp-includes/template-loader.php using the template_include filter. This will be called after WordPress has both inspected the query and loaded the post for the comment. Here you'll first check again for comment_id in the query_var and also for the URL being the one you want. If so i replace the /index.php template page with /comment.php which is a theme template file you will need to create:.
add_filter( 'template_include', 'my_template_include' ); function my_template_include( $template ) {     global $wp,$wp_query;     if (isset($wp_query->query['comment_id']) && substr($wp->request,0,9)=='comments/') {         $template = str_replace('/index.php','/comment.php',$template);     }     return $template; } 
Lastly now you need to create your theme template file which I've chosen to call /comment.php. Since it's your theme you'll want to make it look like you want although here is an case to receive you started:.
<?php  /*  *  File: /wp-content/themes/my-theme/comment.php  */  global $wp_query,$post; $comment_id = $wp_query->query['comment_id']; $comment = receive _comment($comment_id); $permalink = receive _permalink($post->ID); receive _header(); ?> <div id="container">     <div id="comment-<?php echo $comment_id; ?>" class="comment">         <p>Comment by: <span class="comment-author">             <a href="<?php echo $comment->comment_author_url; ?>"><?php echo $comment->comment_author; ?></a></span>             on <span class="comment-date"><?php echo date("D M jS Y", strtotime($comment->comment_date)); ?></span>           at <span class="comment-time"><?php echo date("h:ia", strtotime($comment->comment_date)); ?></span>         </p>         <p>About: <a href="<?php echo $permalink; ?>"><?php echo $post->post_title; ?></a></p>         <blockquote><?php echo $comment->comment_content; ?></blockquote>     </div> </div> <?php  receive _sidebar(); receive _footer(); 
Any questions? Just ask.. Hope this helps.. P.S. All of the code I describing above must either go in your theme's functions.php file and/or in a plugin of your own. A caveat is for the URL rewrite flushing rules this should go in a plugin activation hook if you are going to include it instead us just flushing them manually in the permalinks section of the admin console. I didn't show how to register an activation hook did although if you want to learn more you must read around it here..


(New edited version after OP's comments). There are many ways to did this. In theory this is the simplest, although maybe not 'most appropriate according to WordPress' way. Take this as a starting point. I haven't tested it, so you may encounter an error or two this should be solvable with any minor tweaks. Let me know if you receive stumped and I'll did my best. So conceptually.... You should copy the page.php template file and rename it to 'comments_page.php' (or whatever you like). Open this file in your code editor and find where the following appears: (or create it if it does not exist).
/*Template Name: page*/ 
and change it to .
/*Template Name: comments_page*/ 
Now open your WordPress admin area and create a new page. Call it whatever you want although don't add any content. In the right hand column, select the template this the page uses from the "Page Template" drop down menu. Select 'comments_page' (or whatever you listed as the template name). This tells WordPress to use your file to show this specific page instead of the default page template. Save the page and note the page_id this WordPress generates. . Now, find your theme's comments template, usually 'comments.php'. Find the function wp_list_comments();. We are going to add the name of a custom function this will control the display of your comments as an argument to this function. For an example, go to the twenty-ten theme's files, open comments.php and you'll see what this looks like:.
wp_list_comments( array( 'callback' => 'twentyten_comment' ) ); 
Open the twenty-ten theme's functions.php and find.
function twentyten_comment() 
Copy this entire function and paste it into your theme's functions file. Change the name to' my_comment()', and add this to the wp_list_comments function call like this:.
wp_list_comments( array('callback'=>'my_comment')); 
In your newly-created 'my_comment()' function in your functions.php file, add a link where you want to the separate page of comments (comments_page.php) using receive _page_link() and a query var named 'commentID' and the comments ID..
<a href = "<?php echo receive _page_link($page_id).'/?commentID='.comment_ID();?>">View this comment</a> 
Now to inappropriately add php logic to a template file. Once you understand how this works, you must create a function in your functions.php file and then call it in the theme file.... On comments_page.php ,use $_GET['commentID'] to retrieve the comment's id value from the url, and pass it to receive _comment($commentID) to retrieve the single comment and display it on a single page..
if(isset($_GET['commentID'])){$commentID = $_GET['commentID'];} $comment = receive _comment($commentID); 
Now you have all the single comments information in the $comment variable as an object. . You must decide how to display the comment, although to start, I recommend copying the contents of your theme's comments template to keep things consistent. It will show exactly the same thing the post page shows, although it sounds like this page is intended more for the permalink to a single comment this you link to from any where else. . Hope this helps. Let me know if you run into a snag.. Note: this answer provides info given to me from Todd Perkins over at wordpress.stackexchange.com.


This is my functions.php .
  <?php  if ( ! function_exists( 'twentyten_comment' ) ) :  function my_comment( $comment, $args, $depth ) {     $GLOBALS['comment'] = $comment;     switch ( $comment->comment_type ) :         case '' :     ?>         <li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>">             <div id="comment-<?php comment_ID(); ?>">             <div class="comment-author vcard">                 <?php echo receive _avatar( $comment, 40 ); ?>                 <?php printf( __( '%s <span class="says">says:</span>', 'twentyten' ), sprintf( '<cite class="fn">%s</cite>', receive _comment_author_link() ) ); ?>             </div><!-- .comment-author .vcard -->             <?php if ( $comment->comment_approved == '0' ) : ?>                 <em><?php _e( 'Your comment is awaiting moderation.', 'twentyten' ); ?></em>                 <br />             <?php endif; ?>              <div class="comment-meta commentmetadata"><a href="<?php echo esc_url( receive _comment_link( $comment->comment_ID ) ); ?>">                 <?php                     /* translators: 1: date, 2: time */                     printf( __( '%1$s at %2$s', 'twentyten' ), receive _comment_date(),  receive _comment_time() ); ?></a><?php edit_comment_link( __( '(Edit)', 'twentyten' ), ' ' );                 ?>             </div><!-- .comment-meta .commentmetadata -->              <div class="comment-body"><?php comment_text(); ?></div>      <a href = "<?php echo receive _page_link($page_id).'/?commentID='.comment_ID();?>">View this comment</a>               <div class="reply">                 <?php comment_reply_link( array_merge( $args, array( 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>             </div><!-- .reply -->         </div><!-- #comment-##  -->          <?php                 break;             case 'pingback'  :             case 'trackback' :         ?>         <li class="post pingback">             <p><?php _e( 'Pingback:', 'twentyten' ); ?> <?php comment_author_link(); ?><?php edit_comment_link( __('(Edit)', 'twentyten'), ' ' ); ?></p>         <?php                 break;         endswitch;     }     endif; 
This is my comments_page.php.
/*Template Name: comments_page*/ <? if(isset($_GET['commentID'])){$commentID = $_GET['commentID'];} $comment = receive _comment($commentID);  ?> <?php receive _header(); ?>      <div id="content">     <?php if (have_posts()) : ?>          <?php while (have_posts()) : the_post(); ?>          <div class="post">             <!--uncomment for header tags--  <h1><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h1>             <small><b>Posted:</b> <?php the_time('F jS, Y') ?> | <b>Author:</b> <?php the_author_posts_link(); ?> | <b>Filed under:</b> <?php the_category(', ') ?> <?php the_tags(' | <b>Tags:</b> ', ', ', ''); ?> <?php if ( $user_ID ) :              ?> | <b>Modify:</b> <?php edit_post_link(); ?> <?php endif; ?>| <?php comments_popup_link('No Comments &#187;', '1 Comment &#187;', '% Comments &#187;'); ?></small>   -->             <?php the_content('Read the rest of this entry &raquo;'); ?>              <hr/>         </div>          <?php endwhile; ?>          <div class="navigation">             <div class="alignleft"><?php next_posts_link('&laquo; Older Entries') ?></div>             <div class="alignright"><?php previous_posts_link('Newer Entries &raquo;') ?></div>         </div>      <?php else : ?>          <h2 class="center">Not Found</h2>         <p class="center">Sorry, although  you are looking for any thing this isn't here.</p>      <?php endif; ?>      </div>  <?php receive _sidebar(); ?>  <?php receive _footer(); ?> 
This is my comments.php.
    <?php // Do not delete these lines         if (!empty($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME']))             die ('Please did  not load this page directly. Thanks!');      if (!empty($post->post_password)) { // if there's a password         if ($_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) {  // and it doesn't match the cookie             ?>              <p class="nocomments">This post is password protected. Enter the password to view comments.</p>              <?php             return;         }     }      /* This variable is for alternating comment background */     $oddcomment = 'class="alt" '; ?>  <!-- You must start editing here. --> <div id="comments">  <?php if ($comments) : ?>      <h3><?php comments_number('No Comments', 'One Comment', '% Comments' );?> on &#8220;<?php the_title(); ?>&#8221;</h3>  <?php wp_list_comments( array('callback'=>'my_comment')); ?>    <?php else : // this is displayed if there are no comments so far ?>      <?php if ('open' == $post->comment_status) : ?>         <!-- If comments are open, although  there are no comments. -->       <?php else : // comments are closed ?>         <!-- If comments are closed. -->         <p class="nocomments">Comments are closed.</p>      <?php endif; ?> <?php endif; ?>   <?php if ('open' == $post->comment_status) : ?>  <hr/>  <h4 class="center">Leave a Reply</h4>  <?php if ( receive _option('comment_registration') && !$user_ID ) : ?> <p>You need be <a href="<?php echo receive _option('siteurl'); ?>/wp-login.php?redirect_to=<?php echo urlencode(receive _permalink()); ?>">logged in</a> to post a comment.</p> <?php else : ?>  <form action="<?php echo receive _option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">  <ul class="formlist">  <?php if ( $user_ID ) : ?>  <p>Logged in as <a href="<?php echo receive _option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo receive _option('siteurl'); ?>/wp-login.php?action=logout" title="Log out of this account">Log out &raquo;</a></p>   <?php else : ?>  <li><input type="text" name="author" id="author" value="Name <?php if ($req) echo "(required)"; ?>" size="22" tabindex="1" <?php if ($req) echo "aria-required='true'"; ?> onblur="if(this.value.length == 0) this.value='Name <?php if ($req) echo "(required)"; ?>';" onclick="if(this.value == 'Name <?php if ($req) echo "(required)"; ?>') this.value='';" /></li>  <li><input type="text" name="email" id="email" value="Mail (will not be published) <?php if ($req) echo "(required)"; ?>" size="22" tabindex="2" <?php if ($req) echo "aria-required='true'"; ?> onblur="if(this.value.length == 0) this.value='Mail (will not be published) <?php if ($req) echo "(required)"; ?>';" onclick="if(this.value == 'Mail (will not be published) <?php if ($req) echo "(required)"; ?>') this.value='';" /></li>  <li><input type="text" name="url" id="url" value="Website" size="22" tabindex="3" onblur="if(this.value.length == 0) this.value='Website';" onclick="if(this.value == 'Website') this.value='';" /></li>  <?php endif; ?>  <!--<p><small><strong>XHTML:</strong> You must use these tags: <code><?php echo allowed_tags(); ?></code></small></p>-->  <li><textarea name="comment" id="comment" cols="70%" rows="10" tabindex="4" value="Enter comment here."></textarea></li>  <li class="submitalthough ton"><input name="submit" type="submit" id="submit" tabindex="5" value="Submit Comment" /></li> <input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" />  <?php do_action('comment_form', $post->ID); ?>  </ul>  </form>  <?php endif; // If registration required and not logged in ?>  <?php endif; // if you delete this the sky will fall on your head ?>  </div> 

90 out of 100 based on 45 user ratings 400 reviews

how to search in wordpress from the database mysql
sexy bookmark plugin breaks my site in ie6
difficulty with japanese character encoding in wordpress
Editors for different parts of Wordpress
how can i use ugly slugs in wordpress using non-western character?
طه الفشنی - ابتهال بسیار زیبای حب الحسین
اقامه نماز جماعت ظهر به امامت رهبر معظم انقلاب آیت الله امام خامنه ای (حسینیه امام خمینی(ره))
اقامه نماز جماعت مغرب به امامت آیت الله یثربی (کاشان)
اقامه نماز جماعت مغرب به امامت رهبر معظم انقلاب آیت الله امام خامنه ای (حسینیه امام خمینی(ره))
اقامه نماز جماعت به امامت حجت الاسلام و المسلمین حسینی ایازی (حرم مطهر رضوی)
اقامه نماز جماعت ظهر به امامت حجت الاسلام و المسلمین محسن قرائتی (مسجد دانشگاه تهران)
اقامه نماز جماعت ظهر عاشورا به امامت حجت الاسلام و المسلمین حسن زاده (اهواز)
اقامه نماز جماعت ظهر به امامت آیت الله ابوالحسن مهدوی (مسجد امام(ره) اصفهان)
نماز جماعت ظهر به امامت حجت الاسلام سید محمد مهدی دستغیب (حرم مطهر حضرت احمد بن موسی شاهچراغ(ع)-شیراز)
نماز جماعت مغرب به امامت آیت الله سید باقر مصطفوی (حرم مطهر حضرت محمد هلال بن علی(ع)-مشهد اردهال(آران و بیدگل-کاشان))