WordPress教程

模板兔提供专业的wordpress建站教程、wordpress主题开发教程、wordpress插件开发教程、wordpress二次开发教程等。

WordPress教程:最近,模板兔(mobantu.com)给用户开发了一个游客相册预览几张图片的功能,意思就是未登录的用户可以浏览几张图片,其他图片显示为毛玻璃状态,登录后可正常浏览相册的全部图片。 涉及到给相册添加自定义字段的代码如下,加到主题的functions.php里: add_action('print_media_templates', function(){ ?> <script type="text/html" id="tmpl-my-custom-gallery-setting"> <span class="setting"> <label for="gallery-settings-preview" class="name">游客预览数</label> <input type="text" id="gallery-settings-preview" name="preview" data-setting="preview" style="float: left;width: 100px...

WordPress教程:最近模板兔给客户定制了一款wordpress任务威客类的插件,用户可发布任务以及投标。其中涉及到自定义文章类型、自定义分类法,在后台需要对任务进行类别筛选,可用以下代码: add_action( 'restrict_manage_posts', 'erphp_task_filter_by_taxonomies' , 10, 2); function erphp_task_filter_by_taxonomies( $post_type, $which ) { if ( 'task' !== $post_type ) return; $taxonomies = array( 'tasks' );//这里可以加多个自定义分类法 foreach ( $taxonomies as $taxonomy_slug ) { $taxonomy_obj = get_taxonomy( $taxonomy_slug ); $taxonomy_name = $taxonomy_obj->labels->name; $terms = get_terms( $taxonomy_slug ); ...

WordPress教程: Author Parameters #Author Parameters Show posts associated with certain author. author (int) – use author id. author_name (string) – use ‘user_nicename‘ – NOT name. author__in (array) – use author id (available since version 3.7). author__not_in (array) – use author id (available since version 3.7). Show Posts for one Author Display posts by author, using author id: 1 $query = new WP_Query( array( 'author' => 123 ) ); Display posts by author, using author ‘user_nicename‘: 1 $query = new WP_Query( array( 'author_name'...

WordPress教程:有时候我们会遇到外链图片没法自动用timthumb.php来剪切,除了文件夹权限外,还有可能的一个原因是需要手动添加下授权域名。 打开主题里的timthumb.php,找到以下代码: if(! isset($ALLOWED_SITES)){ $ALLOWED_SITES = array ( 'flickr.com', 'staticflickr.com', 'picasa.com', 'img.youtube.com', 'upload.wikimedia.org', 'photobucket.com', 'mobantu.com', 'imgur.com', 'imageshack.us', 'tinypic.com', 'deviantart.net', 'image.mobantu.com' //这里添加外链图片的域名 ); } 完事~

WordPress教程:今天模板兔在给某个客户开发一项功能的时候,遇到一个问题就是前台投稿页面如果插入自定义分类法呢,虽然wp_insert_post的传值参数里有一个tax_input用于插入自定义分类法的,但是好像并不好使。经过一番搜索,终于找到了解决方法: 在执行完wp_insert_post之后会返回一个$post_id,我们可以用下面这个函数插入自定义分类法的值 wp_set_object_terms( $post_id, 'mobantu', 'domain' );//domain是自定义分类法,mobantu是slug值

WordPress教程:最近的几个wp版本后台的文章发布界面已经默认使用了新版编辑器,这个编辑器我个人不太喜欢也用不习惯,我推荐不管是新手还是老手尽量使用经典编辑器,兼容性更好。 后台的插件 - 安装插件: 安装启用这个经典编辑器即可,发布文章页面的界面就会变成以往的经典界面,不管设置什么都很直观。

WordPress教程:1、将从模板兔购买的主题下载包解压(下载页面有解压密码),上传里面的主题文件monster8.zip(后台的外观-主题,点击添加,然后上传主题)。oauth文件夹放至网站根目录(与wp-content、wp-admin同级,即类似 www.t.com/oauth/ 路径存在),用于社交登录,不用QQ微博登录功能可不上传这个文件夹。 2、wp教程以及主题视频教程 WordPress安装教程链接:https://pan.baidu.com/s/1dTwId2-Mf9V6NsktpBttMg 提取码:47gn WordPress后台基本入门教程链接:https://pan.baidu.com/s/1dduPAohjUVsfTTZ12G4g7A 提取码:386y Monster8主题设置教程链接:https://pan.baidu.com/s/1_6rV_M0v1dUroHNY9J5R4w 提取码:96b5 3、建议大家使用经典编辑...

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...

WordPress教程:最近模板兔给一个用户开发了一个基于阿里云视频点播VOD的收费视频点播的功能,大概需求就是在erphpdown的基础上开发一个可以试看视频、视频加广告、VIP免费看视频、视频单独购买、隐藏视频地址不让用户下载。 大致功能点: 单独购买视频与VIP免费看视频 视频试看,试看后弹窗购买或升级VIP信息 看视频前可设置几秒广告(图片广告或视频广告),用户暂停观看后也可显示广告 隐藏真实视频地址(需转码),防止盗链与下载(阿里云视频点播本身也有CDN加速与防盗链功能,就算暴露真实视频地址,用户也没法下载与引用) 目前我们已经制作成了erphpdown的addon扩展插件https://www.mobantu.com/9574.html,有类似需求的朋友可以...

WordPress教程:最近有用户向模板兔反馈了一个问题:网站开启ssl https后,用主题自带的前端登录后,进后台会直接退出登录需要重新登录,但是直接在wp-login.php页面登录后不就不需要再跳转了。 模板兔仔细研究了之后发现问题出在处理自定义登录的逻辑里的wp_signon这个函数: wp_signon( $credentials, $secure_cookie ) 里面的$secure_cookie这个是设置是否是安全的cookie,那么当网站使用https时就应该需要对应true,所以我们可以这样: wp_signon( array(), is_ssl());//array是用户信息,可为空数组,这个得看你上下怎么写的代码哦 这样就解决了此问题。

WordPress教程: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’;...

WordPress教程:首先确保你认证的服务号、商户号且二者已关联绑定,然后申请的接口是PC扫码支付(Native支付)。如需要手机唤醒微信APP,还需要申请h5支付、jsapi支付。 配置接口需要把这四个数据准确的拿到手: 1、APPID——登录公众平台查看(这个AppID你需要与商户号关联,关联地址https://pay.weixin.qq.com/index.php/extend/merchant_appid/mapay_platform/account_manage) 2、公众帐号Secret——登录公众平台申请重置之后查看AppSecret 3、商户号MCHID——商户平台的ID 4、商户支付密钥KEY——商户平台自己设置的KEY(新界面的APIv2) 申请接口细节: 申请通过审核后,打开微信发来的邮件。 直接获取微信支...

WordPress教程:WordPress 对象缓存简介和服务器设置 WordPress Object Cache(WordPress 对象缓存)是 WordPress 的默认缓存机制,它的主要功能是把负责查询或者运算的结果按照 Key-Value 这样的方式(WordPress 还支持按照 Group 来划分和避免缓存的内容冲突)存储到对象里面,下次进行同样操作的时候,可以让直接从这个对象中取出数据,不用重复到数据库中或者其他外部网站获取数据。 WordPress Object Cache 和服务器设置关系很大,如果系统支持内存缓存,则这个对象是直接存入内存,以后在未过期之前都是直接从内存中读取的,这样效率和速度都非常快的。如果服务器不支持内存缓存的话,则只能保证在当前页面下同样的查询或者操作不再重复从数据库中...

WordPress教程:今天给某客户开发一个网站时遇到一个问题就是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, } });

WordPress教程:这里所说的不是遍历文章内容里的图片地址来获取所有图片,而且获取上传到当前文章的媒体库的所有图片,因为有时候我们回去单独做一个相册,而文章内容里的图片可能有其他不相干的图片存在,所有获取上传到当前文章的媒体库图片是最合适的。 下面的代码是通过获取所有图片来弄一个类似淘宝产品图切换的效果,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){ ?> <...