WordPress教程

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

WordPress教程:模板兔在给客户定制开发主题的过程中遇到一个需求就是需要不同分类下的文章显示出不同的效果,如果通过single.php来做判断可能显得文件代码很繁琐,所以这里可以根据分类来选择显示single的文件。将以下代码加到主题的functions.php 里 //定义模板文件所在目录为 single 文件夹 define(SINGLE_PATH, TEMPLATEPATH . '/single'); //自动选择模板的函数 function mobantu_single_template($single) { global $wp_query, $post; //通过分类别名或ID选择模板文件 foreach((array)get_the_category() as $cat) : if(file_exists(SINGLE_PATH . '/single-cat-' . $cat->slug . '.php')) return SINGLE_PATH . '/single-cat-' . ...

WordPress教程:WordPress 4.4以后的版本对中文用户名不友好,所以我借鉴了wp-includes/formatting.php中sanitize_user函数的写法,将以下php代码复制到当前主题目录下的functions.php中,即可让WordPress支持使用中文用户名注册和登录: function mobantu_sanitize_user ($username, $raw_username, $strict) { $username = wp_strip_all_tags( $raw_username ); $username = remove_accents( $username ); // Kill octets $username = preg_replace( '|%([a-fA-F0-9][a-fA-F0-9])|', '', $username ); $username = preg_replace( '/&.+?;/', '', $username ); // Kill entities // 网上很多教程都是直接将$strict赋值false, // 这样会...

WordPress教程:有时候我们需要给主题添加一个作者列表页面,希望显示角色为作者、编辑等的用户。wordpress 4.4 版本起,WP_User_Query 支持 role__in 与 role__not_in 属性 。 使用以下代码: $blogusers = get_users([ 'role__in' => [ 'administrator', 'editor', 'author' ] ]); foreach ( $blogusers as $user ) { //你的代码 }

WordPress教程:有些用户遇到了一个很奇怪的问题,明明在内容里插入了视频,可以发布后视频却不见了!好吧,其实这是角色权限的问题,你用管理员角色试试,肯定可以插入,但是其他角色就说不准了。 在主题的functions.php里加入以下代码: //by mobantu 让作者可以插入视频 $role2 = get_role( 'author' ); //作者角色 $role2->add_cap( 'unfiltered_html' );

WordPress教程:有时候我们给用户后台发布的权限,可是不想让用户看到所有的媒体库,可以使用View Own Posts Media Only插件,也可以在当前主题的 functions.php 文件添加下面的代码: //在文章编辑页面的[添加媒体]只显示用户自己上传的文件 function MBT_my_upload_media( $wp_query_obj ) { global $current_user, $pagenow; if( !is_a( $current_user, 'WP_User') ) return; if( 'admin-ajax.php' != $pagenow || $_REQUEST['action'] != 'query-attachments' ) return; if( !current_user_can( 'manage_options' ) && !current_user_can('manage_media_library') ) $wp_query_obj->set('author', $current_user->ID ); ...

WordPress教程:在WordPress 3.0以后,有一个新的实用功能:你可以更改默认后台编辑器(TinyMCE)的样式,实现一个有趣的功能:在后台可视化编辑器模式下直接预览日志内容的编排,并且与前台浏览样式保持一致 ,不需要转到前台查看日志编辑情况。 将以下代码放到主题的functions.php里: //比如使用的主题是monkey,那么放在路径monkey/static/css/editor-style.css add_editor_style('/static/css/editor-style.css'); 然后新建editor-style.css文件放到主题monkey目录的static/css/目录下,内容例如: .mce-content-body{padding:10px 15px;font-family:"PingFang SC","Microsoft Yahei",Verdana,Arial,Helvetica,sans-serif;font-size:14px;} .mce...

WordPress教程:到目前为止,模板兔开发的主题有Monews、Moblog、Movaker、Mopai、Mode、Mohtml、Monkey、Moshou、Modia、Modown,其安装教程大同小异,这里针对Monkey主题写一篇安装教程,其他主题步骤类似。此教程仅针对wp小白,熟手可绕道。 教程没有截图,请耐心看,对你使用wordpress会有帮助! wordpress后台使用截图教程: 链接: https://pan.baidu.com/s/1r4LBJRB6rN2HQZUxc8Deqw 提取码: t3ve wordpress后台基本使用入门视频教程: 链接: https://pan.baidu.com/s/1UsrI4l4VDlhdNGe1EqRxcA 提取码: h8am 1、下载包里的文件说明 一般会有一个.xml文件与一个.json文件,一个oauth文件夹(上传到网站根目录,即与wp-content文件夹同级),再就...

WordPress教程:WordPress 自身可以让作者预览未发布的文章,可是有时候我们需要给其他人(游客或没有管理权限)预览我们发布还未发布的文章,就需要借助 Public Post Preview 这个插件。 启用插件后,当你的文章已保存草稿或者定时发布,你可以在发布按钮处看到预览地址。 Enables you to give a link to anonymous users for public preview of a post before it is published.

WordPress教程:模板兔在给客户定制开发模板的过程中遇到一个需求就是自定义文章类型topic列表每页显示15条,而默认的post类型每页显示10条,在topic的archive页面先使用了以下代码: global $query_string; query_posts( $query_string . '&posts_per_page=15'); 发现第一页显示正常,可是其他分页就404。 后来看了官方的文档,将以下代码放进functions.php里,当然,上面的两行代码就不需要了哦。 function topic_posts_per_page($query){     if( is_post_type_archive('topic') ) {         $query->set('posts_per_page', 15);     } } add_action('pre_get_posts', 'topic_posts_per_page'); 搞定!

WordPress教程:很多用户都希望在自己的wordpress网站前台增加投稿功能,虽然有很多插件可以实现此功能,但是能不用插件尽量不用插件,那么我们可以新建一个页面模板来实现投稿功能。 form表单的html代码我就不写了,这里主要写后台处理逻辑,代码如下: $last_post = $wpdb->get_var("SELECT post_date FROM $wpdb->posts WHERE post_author='{$uid}' AND post_type = 'post' ORDER BY post_date DESC LIMIT 1"); if ( time() - strtotime($last_post) < 120 ){ print_r(json_encode(array('error'=>1, 'msg'=>'两次提交文章时间间隔太短,请稍候再来'))); exit(); } $title = $wpdb->escape($_POST['post_title']); $cat...

WordPress教程:WordPress 有个自动分段机制,只要你在可视化下敲击一次回车(文本模式敲击两次回车),就会在前台html自动添加分段标签<p>,其实这个功能也是很方便的,但是有时候我们输入摘要时需要对其样式进行美化,自动分段标签就显得多余了。 这个自动分段机制,使用的是 wpautop() 函数,只会对文章内容和摘要生效,如果你希望禁用它,可以将下面的代码添加到主题的 functions.php 文件即可: remove_filter( 'the_excerpt', 'wpautop' ); 其他地方以此类推。

WordPress教程:模板兔开发的主题里基本都有微博登录,而这个功能里需要模拟post提交来获取用户权限,奇怪的是前几天给客户迁移了服务器后以前的代码(使用的curl)就无法获取用户权限了,检查了服务器函数是支持此函数的,后来换了file_get_contents后才解决。 下面的两种方法,$url是链接,$data是传入参数(格式:"meta_one=1&meta_two=2")。 curl方法: function do_post($url, $data) { $ch = curl_init (); curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, TRUE ); curl_setopt ( $ch, CURLOPT_POST, TRUE ); curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data ); curl_setopt ( $ch, CURLOPT_URL, $url ); curl_setopt ( $ch, CURLO...

WordPress教程:一直都有用户反馈,WordPress默认的找回密码功能总是提示“抱歉,该key似乎无效”,其实问题是邮件里重置链接的最后面多出了一个 > 符号。修复办法如下 在当前主题的 functions.php 添加下面的代码即可: function MBT_reset_password_message( $message, $key ) { if ( strpos($_POST['user_login'], '@') ) { $user_data = get_user_by('email', trim($_POST['user_login'])); } else { $login = trim($_POST['user_login']); $user_data = get_user_by('login', $login); } $user_login = $user_data->user_login; $msg = __('有人要求重设如下帐号的密码:'). "\r\n\r\n"; $msg .= network_site_url() . "\r\n\...

WordPress教程:最近有人使用Monkey主题出现文章内的图片很小,明明上传的是大图,却显示的小图,原来从WordPress 4.4开始,系统将可以根据不同的条件(屏幕大小、可视区大小 和 屏幕分辨率等)为用户显示不同大小的图片,详见。查看源码会看到img标签里出现 sizes="(min-width: {img.width}px) {img.width}px, 100vw" 这样的代码。 这个是默认开启的功能,好像对于我们来说不是很需要,你可以添加下面的代码到当前主题的 functions.php 文件即可关闭此功能: /** * 禁用 WordPress 4.4+ 的响应式图片功能 */ add_filter( 'max_srcset_image_width', create_function( '', 'return 1;' ) ); 如果你不想编辑文件,可以下载安装 Disable Responsive...

WordPress教程:最近wordpress官方发布了wordpress 4.4版,其中新增的特性就是给分类法新增自定义字段函数:add_term_meta() , get_term_meta() , update_term_meta() , delete_term_meta() 。 正好在给客户开发一款主题,其中要用到筛选分类(不是通过分类筛选文章,而是通过分类自定义字段筛选分类),类似于将分类来归类吧~~要用到get_terms函数里的meta_query 代码: get_terms( 'category', array('hide_empty' => true, 'parent' => '0','child_of'=> 0, 'meta_query'=>array(array('key'=>'coursecat','value'=>$courseCat->term_id)) ) ); 具体怎么给分类新增自定义字段,可以看看这篇文章。 www.smashingmagazine.c...