WordPress 添加海报分享功能

avatar 2019年5月15日02:55:06 29 14,025

如题,该功能主要用于生成一份海报页面,具体显示效果如下:

代码参考自精品资源分享博客,原代码存在一些问题导致添加后不能正常使用,自己对代码做了些简单调整,具体调整内容如下:

  • 核心代码打包至 poster 文件夹,方便调用及维护
  • 更改上传目录为 upload/posterimg (原代码将海报直接上传到媒体库并与文章相关联,并且每次都会生成新的海报,时间长了会导致媒体库臃肿,堆积大量无用文件)
  • 调整前段显示样式(新的样式更好看)
  • 还有一些其他的。。。(我也忘了具体是什么了☹)

使用前请注意:

  • PHP 必须开启 GD 库,绘制海报图片要用到。开启方法看这里>>>PHP 如何开启 GD 库?
  • 必须引入 jQuery ,javascript 中 AJAX 提交到 admin-ajax.php 处理要用到

好了,下面简单说下使用方法。

single.php 文件修改

在single.php 文件中合适位置添加如下代码(前端按钮):

<div class="poster-share-ico">
<a class="btn-bigger-cover" data-nonce="<?php echo wp_create_nonce('mi-create-bigger-image-'.$post->ID );?>" data-id="<?php echo $post->ID; ?>" data-action="create-bigger-image" id="bigger-cover" href="javascript:;"><i class="fa fa-paper-plane"></i> <span>生成海报</span></a>
</div>

footer.php 文件修改

在footer.php 文件中添加如下代码(前端弹窗):

<?php
require_once get_stylesheet_directory() . '/poster/poster-pop.php';
?>

functions.php 文件修改

在footer.php 文件中添加如下代码(海报生成):

<?php
require get_stylesheet_directory() . '/poster/poster.php';
?>

生成海报失败的原因

此处为隐藏的内容!
发表评论并刷新,方可查看

如果按以上步骤设置正确了 ,那么你的主题应该已经实现了海报分享的功能。

如果你是的主题使用了 OptionsFrameWork 框架搭建的后台设置面板,那么下面的步骤将有助于你生成一些后台控制按钮。

options.php 文件修改

将以下代码添加到主题 options.php 文件中去(部分主题可能不叫这名):

//路人博客海报
$options[] = array(
    'name' => __( '路人博客海报', 'QGG' ),
    'type' => 'heading'
);
// 分享海报 
$options[] = array(
    'name' => __('海报功能开启', 'QGG'),
    'id' => 'poster_share_open',
    'std' => true,
    'desc' => __('开启', 'QGG'),
    'type' => 'checkbox');
$options[] = array(
    'name' => __( '默认头部大图', 'QGG' ),
    'desc' => __( '上传一张显示在封面顶部的大图', 'QGG' ),
    'id' => 'poster_default_img',
    'std' => '',
    'type' => 'upload'
);
$options[] = array(
    'name' => __( '左下角LOGO', 'QGG' ),
    'desc' => __( '上传一张显示在封面底部的LOGO', 'QGG' ),
    'id' => 'poster_logo',
    'std' => '',
    'type' => 'upload'
);
$options[] = array(
    'name' => __( '网站宣传语', 'QGG' ),
    'desc' => __( '显示在LOGO下方的一句宣传语', 'QGG' ),
    'id' => 'poster_desc',
    'std' => '',
    'type' => 'text'
);
$options[] = array(
    'name' => __( '右下角二维码', 'QGG' ),
    'desc' => __( '开启后将再封面图的右下角现在当前文章的二维码', 'QGG' ),
    'id' => 'share_poster_img_qrcode',
    'std' => false,
    'type' => 'checkbox'
);

single.php 文件调整

将 single.php 文件中的调用代码调整为如下代码:

<!-- 海报分享功能(蝈蝈要安静 2019年03月19日修订版 -->
<?php if( QGG_options('poster_share_open') ){ ?>
    <div class="poster-share-ico">
        <a class="btn-bigger-cover" data-nonce="<?php echo wp_create_nonce('mi-create-bigger-image-'.$post->ID );?>" data-id="<?php echo $post->ID; ?>" data-action="create-bigger-image" id="bigger-cover" href="javascript:;"><i class="fa fa-paper-plane"></i> <span>生成海报</span></a>
    </div>
<?php } ?>

poster.php 文件调整

取消 poster.php 文件中如下代码的注释(大概在342行位置):

// 获取海报底部二维码图片
//if(QGG_Options('share_poster_img_qrcode')){
$qrcode_img = get_template_directory_uri().'/poster/functions/qrcode.php?data='.get_the_permalink($post_id);
//}else{
//$qrcode_img = NULL;
//}

应该就这些了,其他问题留言吧。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:29   其中:访客  27   博主  2

    • avatar 六月 0

      支持一下!

      • avatar hhggccll 0

        这个作品有意思啊 我要买一套

        • avatar dudu 0

          好文

          • avatar ggg 1

            谢谢

            • avatar ggg 1

              抱歉,显示“Error:网络错误,请稍后再试!”根据你的修改了填写了admin.php完整地址也没用

              • avatar 悦己一 0

                很好

                • avatar 38°6 0

                  支持

                  • avatar TIMI 0

                    谢谢分享

                    • avatar 0

                      66666支持一下!

                      • avatar 黑衣人 1

                        芝麻开门!

                        • avatar 七月 1

                          进来学习一下

                          • avatar         小熊资源网 0

                            :grin: 真棒

                            • avatar Ambition's Blog 0

                              不错

                              • avatar miman 0

                                • avatar qqkenan 0

                                  学习一下

                                  • avatar 慕容小布 0

                                    来学习习把

                                    • avatar 一样 0

                                      支持一下!

                                      • avatar wei 0

                                        测试一下

                                        • avatar 与你 0

                                          看看

                                          • avatar 昼白 0

                                            感谢分享

                                            • avatar 好物果 0

                                              老是提示错误

                                              • avatar 001 0

                                                不错的代码

                                                • avatar 你爸爸 0

                                                  支持

                                                  • avatar 黑猫 0

                                                    查看一下

                                                    • avatar 单位3 0

                                                      支持一下

                                                      • avatar YOLEN 1

                                                        急需这个功能

                                                          • avatar 少羽. Admin

                                                            @YOLEN 你该不会通宵了

                                                              • avatar YOLEN 1

                                                                @少羽. 搞得脑壳痛 后来发现是添加的地方加错了