最新公告
  • 欢迎您光临大资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • WordPress 添加海报分享功能

    WordPress 添加海报分享功能 最后编辑:2021-04-24
    增值服务: 自动发货 使用说明 安装指导 环境配置二次开发BUG修复

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

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

    • 核心代码打包至 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’;
    ?>

    生成海报失败的原因

    [wxcaptcha]如果海报生成失败了,可能是下面这段 js 代码中路径的问题,默认是没有将 WordPress 安装到子目录的方式,将其修改为你网站的 admin-ajax.php 文件位置应该就可以了。

    /**
    * @name 生成分享海报
    * @author 蝈蝈要安静 | 一个不学无数的伪程序员(修订)
    * @url https://blog.quietguoguo.com
    * @version 2019年03月19日修订版
    */
    //提交到wordpress自带的ajax处理
    $(document).on(‘click touchstart’, ‘.btn-bigger-cover’, function (event) {
    event.preventDefault();
    var bigger_cover = $(‘.poster-image img’),
    btn_bigger_cover = $(‘#bigger-cover’);
    if (bigger_cover.hasClass(‘load-poster-img’)) {
    $.ajax({
    //url: jsui.ajax_url,
    url: ‘\/wp-admin\/admin-ajax.php’, // 这地方改成自己的 admin-ajax.php 地址
    type: ‘POST’,
    dataType: ‘json’,
    data: btn_bigger_cover.data(),
    }).done(function (data) {
    if (data.s == 200) {
    bigger_cover.attr(‘src’, data.src);
    $(‘.poster-share-weibo’).attr(‘href’, data.share_weibo);
    $(‘.poster-share-qzone’).attr(‘href’, data.share_qzone);
    $(‘.poster-share-qq’).attr(‘href’, data.share_qq);
    $(‘.poster-share-renren’).attr(‘href’, data.share_renren);
    $(‘.poster-down’).attr(‘href’, data.src);
    bigger_cover.removeClass(‘load-poster-img’);
    $(‘.image-loading’).remove();
    } else {
    alert( data.m );
    }
    }).fail(function () {
    alert(‘Error:网络错误,请稍后再试!’);
    })
    }
    $(‘.poster-share’).css({‘opacity’:’1′,’visibility’:’inherit’});

    });
    //关闭窗口
    $(document).on(‘click touchstart’,’.poster-close’,function() {
    $(‘.poster-share’).css({‘opacity’:’0′,’visibility’:’hidden’});
    });

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

    如果你是的主题使用了 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;
    //}

    公告一下:各位好,找到原因了,原因是poster.php中QGG_Options是博主根据自己的主题写的,在我们的主题里不适用,把所有与QGG_Options相关的代码都注释掉,就可以生成海报了 ?

    猜你在找

    • 2021-04-24Hi,初次和大家见面了,请多关照!

    售后服务:

    • 售后服务范围 1、商业模板使用范围内问题免费咨询
      2、源码安装、模板安装(一般 ¥50-300)服务答疑仅限SVIP用户
      3、单价超过200元的模板免费一次安装,需提供服务器信息。
      付费增值服务 1、提供dedecms模板、WordPress主题、discuz模板优化等服务请详询在线客服
      2、承接 WordPress、DedeCMS、Discuz 等系统建站、仿站、开发、定制等服务
      3、服务器环境配置(一般 ¥50-300)
      4、网站中毒处理(需额外付费,500元/次/质保三个月)
      售后服务时间 周一至周日(法定节假日除外) 9:00-23:00
      免责声明 本站所提供的模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: 3482249445@qq.com),我们会及时删除,给您带来的不便,我们深表歉意!

    Hi, 如果你对这款模板有疑问,可以跟我联系哦!

    联系作者
    升级SVIP尊享更多特权立即升级
    My title page contents
    召唤伊斯特瓦尔