WordPress 文章内引用评论短代码

2017-10-20 更新

作者:大发

原文:大发 - WordPress 文章内引用评论短代码 https://fatesinger.com/100102

前情回顾

WordPress 文章内链短代码,仿 WordPress 的 Post Embed 功能。

仿 WordPress 的 Post Embed 功能

WordPress 的 Post Embed 功能,是 4.4 版本新增的,可以在任意 WordPress 站点用嵌入的方式插入 WordPress 博客内的文章。当然了,前提是嵌入和被嵌入的 Wor...

实现代码

下面的代码加入到functions.php中

大发原版代码▼显示

function fa_insert_comments( $atts, $content = null ){
extract( shortcode_atts( array(
'ids' => ''
),$atts ) );
$content = '';
$comment_ids = explode(',', $ids);
$query_args = array('comment__in'=>$comment_ids,);
$fa_comments = get_comments($query_args);
if ( empty($fa_comments) ) return;
foreach ($fa_comments as $key => $fa_comment) {
$content .= '<div class="comment-mixtapeEmbed"><span class="comment-mixtapeEmbed-avatar">' . get_avatar($fa_comment->comment_author_email,32) . '</span><div class="comment-mixtapeEmbed-author">' . $fa_comment->comment_author . '</div><div class="comment-mixtapeEmbed-date">' . $fa_comment->comment_date .'</div><div class="comment-mixtapeEmbed-text">'. $fa_comment->comment_content . '</div></div>';
}
return $content;
}
add_shortcode('fa_insert_comments', 'fa_insert_comments');

如果想输出评论格式,则把代码中的

$fa_comment->comment_content

替换为

apply_filters('comment_text',$fa_comment->comment_content)

我修改过在用的代码(加了评论链接和所在文章)▼显示

function xx_insert_comments( $atts, $content = null ){
extract( shortcode_atts( array(
'ids' => ''
),$atts ) );
$content = '';
$comment_ids = explode(',', $ids);
$query_args = array('comment__in'=>$comment_ids,);
$fa_comments = get_comments($query_args);
if ( empty($fa_comments) ) return;
foreach ($fa_comments as $key => $fa_comment) {
$content .= '<div class="comment-mixtype-embed"><span class="comment-mixtype-embed-avatar">' . get_avatar($fa_comment->comment_author_email,32) . '</span><div class="comment-mixtype-embed-author"><a href="' . get_permalink($fa_comment->comment_post_ID).'#comment-' . $fa_comment->comment_ID . '">' . $fa_comment->comment_author . '</a> - <a href="' . get_permalink($fa_comment->comment_post_ID) . '">' . get_the_title($fa_comment->comment_post_ID) . '</a></div><div class="comment-mixtype-embed-date">' . $fa_comment->comment_date .'</div><div class="comment-mixtype-embed-text">'. $fa_comment->comment_content . '</div></div>';
}
return $content;
}
add_shortcode('xx_insert_comments', 'xx_insert_comments');

参考 CSS 代码▼显示

.comment-mixtype-embed {
background: #f6f6f6;
border: 1px solid #e5e5e5;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
color: #82878c;
font-size: 14px;
overflow: auto;
padding: 16px;
margin-bottom: 16px;
}

.comment-mixtype-embed-avatar {
float: left;
margin-right: 10px
}

.comment-mixtype-embed-avatar .avatar {
border-radius: 100%;
width: 32px;
height: 32px;
border: none;
margin: auto;
}

.comment-mixtype-embed-author {
font-size: 12px;
color: #3e8432;
line-height: 1.4
}

.comment-mixtype-embed-date {
line-height: 1.2;
font-size: 12px;
color: rgba(0,0,0,.44)
}

.comment-mixtype-embed-text {
margin-top: 10px;
font-size: 12px;
color: rgba(0,0,0,.6)
}

.comment-mixtype-embed-text p {
margin-bottom: 2px!important
}

你可以根据你自己的需要来调整代码,也可以自己自定义 CSS 样式。调用非常简单,直接使用短代码 [xx_insert_comments ids=123,245] 即可。

如果你不是在文章内容中,而是在其他地方想调用,则可使用 do_shortcode('[xx_insert_comments ids=123,245]') 来调用。

效果

2017-02-20 10:53:09
电信就是贵,没办法,我家也是用几年后换联通,联通比电信不稳定多了。 电视还是保留有线电视,看本地台比较方便。对长辈来说,本地台重要得多,虽然网上也有,电视盒子可以高高,但画质、稳定性各方面没法比。

附:[[ 短代码 ]] 这样包含短代码就不会执行。

支付宝扫码打赏微信打赏

如果文章对您有帮助,欢迎移至上方按钮打赏老杨

声明: 除非注明,常阳时光文章均为原创,转载请以链接形式标明本文地址
本文地址:https://cyhour.com/521/
Tags:  , 

Comments:14

  1. 没想到这么实用,我博客程序不同,不能嵌套,只能文字引用了

    2017.06.24 21:04 # 回复
    1楼
  2. 动作真快,不过短代码我还是用不习惯,没有加到编辑器上,时间长了都忘了自己设置了什么短代码。

    2017.06.25 14:52 # 回复
    2楼
    • @不亦乐乎 我都加到编辑器上了,要不时间长了真的会忘记。加到编辑器用起来也方便点。

      2017.06.25 15:59 # 回复
  3. Klose

    以我对你的了解,你应该4.8更新也会写上一篇才对….

    2017.06.26 22:53 # 回复
    3楼
  4. 一不小心上榜了,虽然很好看,但是很折腾。感觉使用频率应该不会高。

    2017.06.27 13:35 # 回复
    4楼
  5. 代码专家,赞一个!

    2017.07.01 19:26 # 回复
    5楼
  6. 这个功能喜欢,博主改得也很好啊

    2017.07.06 11:45 # 回复
    6楼
  7. 这个真心不错。记得以前我是直接复制评论的内容。

    2017.08.08 14:23 # 回复
    7楼

发表留言