WordPress教程

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

WordPress教程:最近模板兔给客户做了一个针对OSS鉴权下载的功能(OSS下载加密)。就是阿里云OSS的bucket是私密的,为了防止下载链接被盗用,需要结合erphpdown插件做鉴权下载。这样就算别人知道了你文件在OSS的下载地址(例如:https://mobantu.oss-cn-guangzhou.aliyuncs.com/test/erphpdown.zip)也是无法下载的。 当然,下载地址里还是填OSS的下载地址,只是在erphpdown跳转处理下载逻辑时会自动做鉴权加上参数(例如:https://mobantu.oss-cn-guangzhou.aliyuncs.com/test/erphpdown.zip?OSSAccessKeyId=xxxxx&Expires=1644376819&Signature=ooooo)。 代码示例如下: require ERPHPDOWN_PATH.'/aliyun-oss-php-sdk/autoload.php'; use ...

WordPress教程:最近有人找模板兔二次开发modown主题,需要修改评论显示,要不影响主题升级的情况下修改,那么需要用到子主题。 怎样才能用子主题来覆盖默认的评论模板函数comments_template引用的模板文件呢? 将以下代码加到子主题的functions.php里,然后子主题里创建一个comments-new.php文件即可。 add_filter( "comments_template", "modown_child_comment_template" ); function modown_child_comment_template( $comment_template ) { global $post; if ( !( is_singular() && ( have_comments() || 'open' == $post->comment_status ) ) ) { return; } return dirname(__FILE__) ."/comments-new.php"; }

WordPress教程:有很多WordPress博客的固定链接中使用了文章ID,但是WordPress由于种种原因导致了文章ID不连续的问题,也经常有博友在论坛中提问要解决这个问题,但是很少能够得到他们满意的答复。今天我就来告诉你如何完美的解决这个问题,说是完美,可能有点过了,WordPress 3.0 之后的版本都会有个自动草稿,每发表一篇文章就会占两个ID号,目前还没有禁用的方法。还请继续往下看如何一定程度上解决文章ID不连续的问题。 一、禁用文章修订版 所谓的文章修订版就是你每次修改一次文章,它都会自动帮你保存修改之前的文章版本,专业术语叫做版本控制,这样保证了在误修改的情况下可以还原之前的内容,这个在维基文档的维护方面是有很大帮助的,但是作为我...

WordPress教程:WordPress在采集文章时,需要插入Erphpdown插件的对应字段,这里给出常用字段名以及值。 收费模式 字段:erphp_down,值:1(下载)、2(查看)、3(部分查看)、5(免登录,即将废弃)、6(发卡) 这里需要注意的是,为了兼容老旧版本的数据,收费模式除了设置erphp_down意外还需要设置一个字段。 下载为start_down:yes,查看为start_see:yes,部分查看为start_see2:yes,免登录为start_down2:yes VIP优惠 字段:member_down,值的话这里仅列举常用的。 VIP专享:4,包年VIP专享:8,终身VIP专享:9,VIP免费:3,包年VIP免费:6,终身VIP免费:7,VIP 5折:2,VIP 8折:5 价格类型 字段:down_price_type 多价格:1,...

WordPress教程:一直以来关于WordPress投稿者无法上传图片的问题都困扰着我,上传图片的权限给了,而且在投稿页面也显示出来了添加媒体的按钮,但是就是点击添加媒体上传图片后提示:抱歉,您不能添加附件到此文章。 关于这个提示,百度了很久也没有相关的文章,最后想肯定很是缺少了什么权限,于是就先装了一个WordPress用户权限管理插件:WPFront User Role Editor、User Role Editor插件启用后可以很方便的对某个用户角色添加或减少指定的权限。 于是我就对投稿者角色里的权限一个一个的尝试开启,然后看这个错误提示是否是存在,最后功夫不负有心人,终于上我试出来了,是确实两个关于页面编辑的权限,这两个权限开启后,问题彻底解决了,如下图红...

WordPress教程:安装web 首先,准备两个域名及web环境,我的测试环境是宝塔。 主站A 域名:a.test.com 数据库名称:test 数据库用户:mytest 数据库用户密码:test123 数据表前缀:a_ 从站B 域名:b.test.com 数据库名称:test 数据库用户:mytest 数据库用户密码:test123 数据表前缀:b_ 先安装A站,使用上述A站配置信息,安装完毕后,再安装B站,B站也使用上述信息。注意:为了实现数据共享,我们必须将两个站的数据表都放在同一个数据库中,上面我用的test数据库。 修改wordpress配置 为实现共用用户数据,我们必须让两个站使用的数据表都为a_user与a_usermeta。或者都使用b_user与b_usermeta,我这里使用的A作为主站,所以我需要把B...

WordPress教程:有时候我们需要在wordpress网站里无感植入一条广告,就是样式与普通文章没有区别,用户点击就跳到设置的广告外链页面。 代码如下: add_filter('the_permalink', 'su_jump_link'); function su_jump_link( $url ){ global $post; $su_jump = get_post_meta($post->ID,'su_jump',true); if($su_jump){ return $su_jump; } return $url; } 你需要给文章添加一个自定义字段用户填写外链,例如这里的su_jump

WordPress教程:Advanced Custom Fields是一款自定义文章字段的插件,功能较为强大,字段可以分组来指派,那么我们如何显示某个字段组下的字段呢? 也就是如何get fields from group,我们需要用到一个方法get_field_object。 <?php //or insert the ID of your fields Group. $groupID='116'; $custom_field_keys = get_post_custom_keys($groupID); foreach ( $custom_field_keys as $key => $fieldkey ) { if (stristr($fieldkey,'field_')) { //echo $key . " => " . $fieldkey . "<br />"; //echo $field['label'] . ': ' . $field['value']; //echo $fieldkey . "<br />"; $field = get_field_object($fieldkey, ...

WordPress教程:WordPress后台用户列表默认是按名称来排序的,这样我们查看最近注册的用户就很不方便,那么如何按注册时间来排序呢? 将下面代码加到主题的functions.php里: add_filter( 'manage_users_sortable_columns', 'erphpdown_modify_user_table_row_sortable' ); function erphpdown_modify_user_table_row_sortable( $columns ) { return wp_parse_args( array( 'reg' => 'registered' ), $columns ); } function erphpdown_modify_user_table( $column ) { $column['reg'] = '注册时间'; return $column; } add_filter( 'manage_users_columns', 'erphpdown_modify_user_table' ); function erphpdown_modify_user_table_row...

WordPress教程:WP Cron 是什么? 是 WordPress 一套定时触发机制, 可以循环安排任务执行. 如: 定时发布新文章, 定期检测版本等功能都是通过这个来实现的. WP Cron 可以为我们实现什么? 我们可以循环更新和提交网站数据, 节日定期向读者发送贺卡或者表单, ... WordPress 定时任务方法列表可以参考: WP-Cron Functions WP-Cron 效率不高, 但还是很方便好用的, 整理了一下相关函数的使用方法如下. wp_get_schedule 通过勾子别名, 获取预定安排的勾子. 成功时返回循环周期类别 (hourly, twicedaily, daily, ...), 失败时返回 false. <?php wp_get_schedule( $hook, $args ) ?> $hook: 勾子别名 $args: 勾子对应函数的参数数组 (可选) ...

WordPress教程:如何使用WordPress Rest API发布文章并设置postmeta字段信息?要使用WordPress Rest API发布文章必须先鉴权,WordPress Rest API接收的文章字段仅包含posts数据表,不包含postmeta数据表,所以要保存postmeta信息,必须添加自定义回调函数处理。 WordPress Rest API发布文章 WordPress Rest API发布文章的接口比较简单,这里简单介绍下发布文章过程。 请求地址:域名/wp-json/wp/v2/posts 请求参数: title(文章标题) content(文章内容) 其它参数 返回值:成功返回文章信息,失败返回提示信息。 WordPress Rest API保存postmeta postmeta信息需要我们添加WordPress Rest API扩展程序,因为它没有对postmeta信息的...

WordPress教程:如果你需要制作一个前端提交内容的表单,文本编辑器自然不可避免的要用到wp_editor。 但是如果直接调用这个函数会出现一些问题,第一个,由于在前端使用,比如你在一个自定义的页面模板中使用,那么上传的文件会附属到这个页面上,而不是新创建的文章上。同样也会导致另一个问题,由于wp_editor默认了编辑的内容是当前页面,所以如果是非管理员用户,是无法上传文件的,因为通常页面是由管理员创建的。 实际上,我们需要并不是编辑当前的页面,而是利用wp_editor这样一个编辑器,编辑文本,上传文件。然后将内容传递到wp_insert_post创建文章。 研究WordPress后台发布文章的代码后,发现后台是在打开new-post.php页面后就默认创建了...

WordPress教程:使用WordPress条件判断标签,可以为特定页面加载不同的模板,灵活运用WordPress条件判断标签可以制作出WordPress图片列表、专题页面、不一样的文章页面等。通常我使用这些条件标签来为不同页面输出不同的关键词标签(Keywords)、描述标签(Description)内容。 WordPress条件判断标签详细列表 主页 is_home() 主页,当前页面为主页时返回True,只有“阅读”设置中的首页显示设置为“最新文章”才返回True 首页 is_front_page() 首页,不管“阅读”设置中的首页显示设置为何值,都返回True。需要注意的是,当首页显示设置为一个静态页面时,你的站点首页加载的是page.php页面模板。 管理员面板 is_admin() 后台,只有处于...

WordPress教程:WordPress里搜索是很常见的功能,有时候我们为了突出搜索结果,会对搜索关键字进行标红醒目的处理。当标题里含有关键字时,标红很容易,但是假如是正文里包含,但是列表信息里并没有显示出那段包含关键字的语句,这个时候显示的结果可能并不那么醒目,那么如何显示呢? 我们可以使用下面这段代码: $con = MBThemes_strip_tags(get_the_content()); if(strpos($con,$search_key) !== false){ $str = mb_convert_encoding($con, "UTF-8", "GB2312"); preg_match_all("/(.{50}$search_key.{20})/su", $con, $matches, PREG_SET_ORDER); if($matches[0][0]){ echo str_replace($search_key,'<font color="red">'.$search_key.'&l...

WordPress教程:WordPress如何判断一个分类是另一个分类的子分类,换句话说就是如何判断一个分类是另一个分类的父分类,官方有这样一个函数cat_is_ancestor_of。 cat_is_ancestor_of( int|object $cat1, int|object $cat2 ) 参数说明 $cat1 (int|object) (Required) ID or object to check if this is the parent category. $cat2 (int|object) (Required) The child category.