登録済みとからのコメントに 'username'をリンクする方法を見つけようとしていますユーザーは自分のWebサイトのURLではなく自分のプロフィールページにアクセスします。そして、未登録のユーザーからいつものように彼らのウェブサイトのURLにコメントします。
これは可能ですか?私のワードプレスのバージョンは3.5.1であり、私はデフォルトのテーマTwenty Twelveを使用しています。
これが 'twentytwelve_comment'関数のコードです。
<li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>">
<article id="comment-<?php comment_ID(); ?>" class="comment">
<header class="comment-meta comment-author vcard">
<?php
echo get_avatar( $comment, 44 );
printf( '<cite class="fn">%1$s %2$s</cite>',
get_comment_author_link(),
// If current post author is also comment author, make it known visually.
( $comment->user_id === $post->post_author ) ? '<span> ' . __( 'Post author', 'twentytwelve' ) . '</span>' : ''
);
printf( '<a href="%1$s"><time datetime="%2$s">%3$s</time></a>',
esc_url( get_comment_link( $comment->comment_ID ) ),
get_comment_time( 'c' ),
/* translators: 1: date, 2: time */
sprintf( __( '%1$s at %2$s', 'twentytwelve' ), get_comment_date(), get_comment_time() )
);
?>
</header><!-- .comment-meta -->
<?php if ( '0' == $comment->comment_approved ) : ?>
<p class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.', 'twentytwelve' ); ?></p>
<?php endif; ?>
<section class="comment-content comment">
<?php comment_text(); ?>
<?php edit_comment_link( __( 'Edit', 'twentytwelve' ), '<p class="edit-link">', '</p>' ); ?>
</section><!-- .comment-content -->
<div class="reply">
<?php comment_reply_link( array_merge( $args, array( 'reply_text' => __( 'Reply', 'twentytwelve' ), 'after' => ' <span>↓</span>', 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>
</div><!-- .reply -->
</article><!-- #comment-## -->
<?php
break;
endswitch; // end comment_type check
}
endif;
私はしばらく前にそのための解決策を書きました:
<?php # -*- coding: utf-8 -*-
/**
* Plugin Name: T5 Comment author URI to blog author page
* Description: Changes the comment author URI to the blog’s author archive
* Version: 2012.07.18
* Author: Fuxia Scholz
* Author URI: https://fuxia.me
* License: MIT
* License URI: http://www.opensource.org/licenses/mit-license.php
*/
if ( ! function_exists( 't5_comment_uri_to_author_archive' ) )
{
add_filter( 'get_comment_author_url', 't5_comment_uri_to_author_archive' );
function t5_comment_uri_to_author_archive( $uri )
{
global $comment;
// We do not get the real comment with this filter.
if ( empty ( $comment )
or ! is_object( $comment )
or empty ( $comment->comment_author_email )
or ! $user = get_user_by( 'email', $comment->comment_author_email )
)
{
return $uri;
}
return get_author_posts_url( $user->ID );
}
}
ユーザーがすでにログインしている場合は、単に管理者ページをポイントするだけで、自分のプロフィールが表示されます。リンクはそれらを指すことができます:
ユーザープロフィールページ: http://yoursite.com/wp-admin/profile.php
ユーザーがログインしているかどうかを確認するには、コメントテンプレートを編集する必要があります(テーマが適切にコーディングされているかどうかに応じて、コメントテンプレートが既にそれを確認していると間違えない場合)。そうでない場合は、使用することができます。
is_user_logged_in()
あなたはコメントの著者のリンクを得ることができます:
comment_author_link()
主にs_ha_dumのコメントに導かれて、ここにあなたが著者のアーカイブページへのリンクを生成する方法があります(そこには、その著者によるすべての記事がリストされています)。コードをfunctions.phpのtwentytwelve_comment
関数内に配置する必要があります。ここで、$comment
オブジェクトは利用可能です。
$uname = get_the_author_meta( 'user_login', $comment->user_id ); // get username
echo site_url('/author/' . $uname);
comment_author_link
に関しては、それはあなたに彼らのプロフィール情報で提供されたかもしれないURL作者へのリンクを得るでしょう。そうでなければ、それは単に作者の名前を返すでしょう。