WordPress主题添加海报分享功用教程

jaysun

大多数网站在文章底部都会有一个分享按钮或是界面来分享文章,是宣传网站很好的工具,本文介绍的是一款比较全的共享,如题,该功用首要用于生成一份海报页面,详细显现效果如下:


1.png



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


核心代码打包至 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 文件中增加如下代码(海报生成):

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



生成海报失败的原因

[ghide keyword=”海报共享” key=”FXHB”]

如果海报生成失败了,可能是下面这段 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'}); });

如果按以上过程设置正确了 ,那么你的主题应该现已完成了海报共享的功用。

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




options.php 文件修正

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

隐藏内容
评论可见
前往评论




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;//}



以上便是全部教程,大家可以尝试修正一下,修正前请做好文件备份。

您需要 登录账户 后才能发表评论

发表评论

快捷回复: 表情:
评论列表 (暂无评论,117人围观)

还没有评论,来说两句吧...

目录[+]

取消
微信二维码
微信二维码
支付宝二维码