WordPress 通过短代码在文章或评论中显示站内指定文章内容

2017-02-05 06:23 1,755 30 条评论 龙笑天下
Dragon主题购买

WordPress 通过短代码在文章或评论中显示站内指定文章内容

如果你认真写博客的话肯定会有在文章内引用你站内其他文章的时候,这个时候我们一般都是直接用一个 a 标签来搞定。在 WordPress 4.4 版本新增 Post Embed 功能,可以比较具体的展示链接的信息,可以在任意 WordPress 站点用嵌入的方式插入 WordPress 博客内的文章然后自动的转换成相应的内链块。当然了,前提是嵌入博客主题都支持 Post Embed 功能并且没有禁用掉。虽然这样已经解决了问题,但是我们可以有更好的方案~

因为要调用的是站内文章,如果我们使用get_posts的话可以很好的调用文章的元信息,包括浏览量,缩略图之类的,甚至文章摘要(如果你有的话)。再加上可以自定义样式,这个内链看上去可要比普通的 A 标签高大上多了。比如下面的:

WordPress 根据评论数量来判断是否显示评论者链接-BG
WordPress 根据评论数量来判断是否显示评论者链接

WordPress 根据评论数量来判断是否显示评论者链接

本文主要讲的是你可以根据评论数来控制是否显示留言者的链接。比如说只有当评论者的评论数大于一万的时候才显示链接,如果小于一万则不显示。当然,一万只是说说而已。 这里评论数肯定要根据邮箱来统计了...

我们可以用短代码的方式添加文章 ID 来直接调用文章,非常方便,下面给出实现方法。

代码参考自Fatesinger,并做了少许优化:

/**
* WordPress 通过短代码在文章或评论中显示站内指定文章内容
* https://www.ilxtx.com/insert-post-through-post-id.html
* Modified: 2018-10-22 13:31:49 支持文章数超过 5,支持按 id 填写顺序排列文章
*/
function lxtx_fa_insert_posts( $atts, $content = null ){
    extract( shortcode_atts( array(
        'ids' => ''
    ),
        $atts ) );
    global $post;
    $content = '';
    $postids =  explode(',', $ids);
    $inset_posts = get_posts( array(
            'post__in' => $postids,
            'numberposts' => count($postids),
            'orderby' => 'post__in',
        ) );
    foreach ($inset_posts as $key => $post) {
        setup_postdata( $post );
        $content .=  '<div class="card-today-history"><div class="card-thContents"><div class="card-thLine"></div><div class="card-thHeroTitle"><a target="_blank" class="label--thTitle" href="' . get_permalink() . '">' . get_the_title() . '</a><div class="v-floatRight card-thMeta">' . get_comments_number(). '<i class="iconfont icon-comment"></i></div></div></div></div>';
    }
    wp_reset_postdata();
    return $content;
}
add_shortcode('lxtx_fa_insert_post', 'lxtx_fa_insert_posts');

你可以根据你自己的需要来调整代码,也可以自己自定义 CSS 样式,这里就不给出 CSS 代码了。当然也可以参考本站的结构和 css~

至于调用就非常简单了,直接使用短代码[lxtx_fa_insert_post ids=123,245]即可;当然,如果你不是在文章内容中,而是在其他地方想调用,则可使用do_shortcode('[lxtx_fa_insert_post ids=123,245]')来调用。

其它参考文章

仿 WordPress 的 Post Embed 功能 - 常阳时光

「点点赞赏,手留余香」

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

2017-01-15

2017-03-15

发表评论

表情 格式 贴图 链接 私密 签到
Dragon主题购买阿里云特价云服务器1核2G低至86元,N4共享型服务器3年仅需799元腾讯云特价云服务器1核2G 88元/年 2核4G3M688元/3年,更有千元代金券礼包免费领!
评论
正在努力加载中...
扫一扫二维码分享
×
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies. Learn more