WordPress教程
模板兔提供wordpress建站教程、wordpress主题开发教程、wordpress插件开发教程、wordpress二次开发教程等。
这里主要写下发短信的核心代码,仅供参考,至于手机号注册的逻辑代码,请自己写或者联系模板兔开发。
首先你需要有Access Key ID、Access Key Secret、签名、模板ID。
阿里云验证码、短信通知类:
<?php
/**
* 阿里云短信验证码、短信通知发送类
* @author Administrator
*
*/
class Sms {
// 保存错误信息
public $error;
// Access Key ID
private $accessKeyId = '';
// Access Access Key Secret
private $accessKeySecret = '';
// 签名
private $signName = '';
// 模版ID
private $templateCode = '';
public function __construct($cofig = array()) {
/*
* 通过参数传递
* $cofig = array (
'accessK...
最近模板兔给一个用户开发了一个基于阿里云视频点播VOD的收费视频点播的功能,大概需求就是在erphpdown的基础上开发一个可以试看视频、视频加广告、VIP免费看视频、视频单独购买、隐藏视频地址不让用户下载。
大致功能点:
单独购买视频与VIP免费看视频
视频试看,试看后弹窗购买或升级VIP信息
看视频前可设置几秒广告(图片广告或视频广告),用户暂停观看后也可显示广告
隐藏真实视频地址,防止盗链与下载(阿里云视频点播本身也有CDN加速与仿盗链功能,就算暴露真实视频地址,用户也没法下载与引用)
有类似需求的朋友可以联系我们哦~
最近有用户向模板兔反馈了一个问题:网站开启ssl https后,用主题自带的前端登录后,进后台会直接退出登录需要重新登录,但是直接在wp-login.php页面登录后不就不需要再跳转了。
模板兔仔细研究了之后发现问题出在处理自定义登录的逻辑里的wp_signon这个函数:
wp_signon( $credentials, $secure_cookie ) 里面的$secure_cookie这个是设置是否是安全的cookie,那么当网站使用https时就应该需要对应true,所以我们可以这样:
wp_signon( array(), is_ssl());//array是用户信息,可为空数组,这个得看你上下怎么写的代码哦
这样就解决了此问题。
WordPress 自定义分类、标签、页面的URL伪静态格式,加.html后缀:
function custom_page_rules() {
global $wp_rewrite;
/** page页面自定义URL样式 **/
$wp_rewrite->page_structure = $wp_rewrite->root . ‘page/%pagename%.html’;
/** tag页面自定义URL样式 **/
$wp_rewrite->extra_permastructs[‘post_tag’][‘with_front’] = ”;
$wp_rewrite->extra_permastructs[‘post_tag’][‘struct’] = $wp_rewrite->extra_permastructs[‘post_tag’][‘with_front’] . ‘tag/%post_tag%.html’;
/** category页面自定义URL样式 **/
$wp_rewrite->extra_permastructs[‘category’][‘with_front’] = ‘category’;...
首先确保你认证的服务号、商户号且二者已绑定,然后申请的接口是扫码支付(Native支付)。
设置商户号支付密钥方法如下:
1.申请通过审核后,打开微信发来的邮件。
直接获取微信支付商户号(接口文档中的商户号MCHID);(也叫 受理商ID 填写到后台)。
商户支付密钥key 按以下步骤自己设置生成。
2.点击访问 新商户平台http://mch.weixin.qq.com 或https://pay.weixin.qq.com,用账号和密码登录。
3.这里有个小坑,就是开发平台和微信商户平台的对应关系是,每个APP都会有为之对应的唯一的商户号,用户需要通过APP注册时微信返回的邮件确认登录那个商户设置API_key,切记
4.并安装证书。
5.设置操作密码(设置过...
WordPress 对象缓存简介和服务器设置
WordPress Object Cache(WordPress 对象缓存)是 WordPress 的默认缓存机制,它的主要功能是把负责查询或者运算的结果按照 Key-Value 这样的方式(WordPress 还支持按照 Group 来划分和避免缓存的内容冲突)存储到对象里面,下次进行同样操作的时候,可以让直接从这个对象中取出数据,不用重复到数据库中或者其他外部网站获取数据。
WordPress Object Cache 和服务器设置关系很大,如果系统支持内存缓存,则这个对象是直接存入内存,以后在未过期之前都是直接从内存中读取的,这样效率和速度都非常快的。如果服务器不支持内存缓存的话,则只能保证在当前页面下同样的查询或者操作不再重复从数据库中...
今天给某客户开发一个网站时遇到一个问题就是swiper slide有向右偏移几个像素(一次不止显示一张图片的情况下),改变窗口大小后又恢复正常,很奇怪,搜索了半天终于找到了解决办法,下面给出解决方法,希望能帮助到有需要的同学。
var swiper = new Swiper('.swiper-container', {
watchSlidesProgress: true,
slidesPerView: 'auto',
centeredSlides: true,
loop: true,
loopedSlides: 5,
autoplay: true,
observer:true,//修改swiper自己或子元素的时候,自动初始化swiper
observeParents:true,//修改swiper的父元素时,自动初始化swiper
pagination: {
el: '.swiper-pagination',
clickable :true,
}
});
这里所说的不是遍历文章内容里的图片地址来获取所有图片,而且获取上传到当前文章的媒体库的所有图片,因为有时候我们回去单独做一个相册,而文章内容里的图片可能有其他不相干的图片存在,所有获取上传到当前文章的媒体库图片是最合适的。
下面的代码是通过获取所有图片来弄一个类似淘宝产品图切换的效果,swiper版本是4.5。
function MBThemes_thumbnail_gallery(){
global $post;
$attachments = get_posts(array(
'post_type' => 'attachment',
'posts_per_page' => 6,
'post_status' => 'any',
'post_parent' => $post->ID
));
if ($attachments){
$count = count($attachments);
if($count){
?>
<...
目前模板兔开发的erphpdown与wppay均已集成了支付宝当面付接口,可是很多用户签约了当面付接口之后,不知道怎么获取接口信息,下面模板兔给大家讲一下。
申请接口:
首先进 b.alipay.com 登录,然后会进到 https://mrchportalweb.alipay.com/user/home.htm#/ 页面,往下看有个【为你推荐】,这些都是支付接口,你选择当面付,然后立即接入,你会看到让你必须选经营内容与上传店铺招牌,经营内容一般选互联网服务,店铺招牌你在你家附近随便拍一个门面招牌(这个你自由发挥),然后申请就行了。
查看接口:
进入https://openhome.alipay.com/platform/appManage.htm#/apps,看到应用列表,找到指定的应用查看详情,应用信息,先设置接口加...
在wordpress主题的开发中,我们常用到一个图片剪切工具timthumb,但是此工具默认是居中剪切,这对于一些长图片(例如PPT模板图片)来说就很不友好了,那么如何能从顶部开始剪切图片呢?
有个参数a,可有如下值
c : position in the center (this is the default)
t : align top
tr : align top right
tl : align top left
b : align bottom
br : align bottom right
bl : align bottom left
l : align left
r : align right
方法如下:
timthumb.php?src=image.jpg&w=100&h=100&a=t
advanced custom fields是一款非常强大的自定义文章字段的wp插件,主要功能是供后台发布文章时填写一些预设的字段,但是很多网站不仅仅局限于后台发布而是前台投稿,那如何在前端投稿页面里加入自定义的字段选项供设置填写呢?
这里要用到插件的一个函数get_field_object ACF功能可用于获取特定字段的信息和选项。
首先,需要输出特定字段的字段键。编辑字段组时,单击页面顶部的屏幕选项选项卡。您应该看到一个选项来切换字段键的显示(默认情况下它是隐藏的以节省空间),获得密钥后,可以加载字段对象并输出其值(下面演示的是一个类型为radio或者select的字段):
<?php
$field_key = "field_5c7e1511eba3c";
$field = get_f...
由于我们的Modown主题集成了此插件,所以在此写个简单的教程供大家参考,Modown集成此插件的主要用途就是 http://demo.mobantu.com/modown/559 右侧栏购买处自定义文章属性的显示效果。
启用插件后,后台可看到一个字段的菜单,创建字段组:
单个字段设置:
添加好字段组后,看后台发布文章处:
当然,此插件的功能比较强大,你可以根据分类的不同显示不同的字段组,请自行研究,这里模板兔就不说明了。
今天给客户迁移网站,导入数据库时提示 Unknown collation: ‘utf8mb4_unicode_520_ci’ 错误。
原因是数据库版本差异,导致wordpress数据库的编码整理方式不一样。MySQL 5.6 以及以上版本下,安装 WordPress 4.6 及以上版本的时候,默认的编码整理方式为 utf8mb4_unicode_520_ci,但是 MySQL 5.5 及以下版本的数据库,不支持 utf8mb4_unicode_520_ci,所以无法导入。
处理的办法,就是使用 sublime text 等代码编辑器,打开 .sql 数据库,然后批量查找替换所有的 utf8mb4_unicode_520_ci 为 utf8mb4_unicode_ci ,保存后上传即可。
如果你使用的wordpress默认的主题,其自带的分页可能无法满足你的要求,那么可以在主题的functions.php里加入以下代码:
function MBThemes_paging() {
$p = 3;
if ( is_singular() ) return;
global $wp_query, $paged;
$max_page = $wp_query->max_num_pages;
if ( $max_page == 1 ) return;
echo '<div class="pagination"><ul>';
if ( empty( $paged ) ) $paged = 1;
// echo '<span class="pages">Page: ' . $paged . ' of ' . $max_page . ' </span> ';
if ( $paged > 1 ) p_link( 1, '首页' );
echo '<li class="prev-page">'; previous_posts_link('上一页'); echo '</li>';
...
WordPress免插件集成ckplayer播放器,首先在ckplayer官网下载资源包,将ckplayer文件夹放入所使用主题里(确保wp-content/themes/motheme/ckplayer/ckplayer.js存在),然后添加代码如下:
在主题的functions.php添加以下代码
function MBThemes_ckplayer_scripts() {
wp_enqueue_script( 'ckplayer', get_bloginfo('template_url') . '/ckplayer/ckplayer.js', false, '', false);
}
add_action('wp_enqueue_scripts', 'MBThemes_ckplayer_scripts');
add_shortcode("ckplayer","MBThemes_ckplayer_shortcode");
function MBThemes_ckplayer_shortcode( $atts, $content=null )
{
$nonce = wp_create_nonce(rand(10,1000));
re...