WordPress教程

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

WordPress教程:wordpress默认搜索是搜索文章标题以及检索文章内容里的关键字,但是对于一些电商网站来说,搜索产品编号也是很重要的一部分,但是产品编号一般是一个自定义字段,无法被搜索到,这时该怎么办呢? 接下来让模板兔给出解决方案: 首先,让系统的搜索能搜索到postmeta数据表: function MBT_search_join( $join ) { global $wpdb; if ( is_search() ) { $join .=' LEFT JOIN '.$wpdb->postmeta. ' ON '. $wpdb->posts . '.ID = ' . $wpdb->postmeta . '.post_id '; } return $join; } add_filter('posts_join', 'MBT_search_join' ); 然后在模糊查询里加入查询字段: function MBT_search_where( $where ) {...

WordPress教程:最近,有个用户找模板兔迁移网站,源站用的dede,需要转成wp,文章数量大概7000-8000篇,其中有个需求是保证旧文章的链接有效,在wp上的新文章与旧文章的链接类型不一样,所以这涉及到伪静态来处理跳转。虽然网上都很多教程,但是在这次导入过程中还是遇到过一些问题。 以下教程是dede的数据表得与wp的数据表在同一个数据库下!要是不在,可以将dede_archives先导入到wp的数据库里。 一般流程 1. 文章标题等基本数据导入 织梦的文章标题、正文和栏目分别存放在三个不同的表上,但WordPress把文章标题和正文放在一个表上,栏目放在另外一个表上。 为了简化后面的工作,第一步我首先把织梦的全站RSS文件(rss.php)保存下来,然后使...

WordPress教程:有网友询问,如何在文章编辑的“添加媒体”中只显示上传到本文章的文件,因为默认会显示所有文件,如果文件很多,加载起来非常慢,还会出现假死现象。要解决这个问题,将下面的代码添加到当前主题的 functions.php 文件中: add_action( 'wp_footer', 'mobantu_mediapanel_lock_uploaded' );//让前台编辑器也生效 add_action( 'admin_footer-post-new.php', 'mobantu_mediapanel_lock_uploaded' ); add_action( 'admin_footer-post.php', 'mobantu_mediapanel_lock_uploaded' ); function mobantu_mediapanel_lock_uploaded() { ?> <script type="text/javascript"> jQuery(document).on("DOMNodeInserted", function(){ ...

WordPress教程:最近模板兔给某个客户定制一个关于数据下载的wordpress模板,需要使用erphpdown收费下载插件,其中要实现这样一个页面:多字段筛选。 效果如下:(这里只列出3项自定义字段) 筛选界面代码如下: <div class="filters"> <div class="filter-item"> 数据标价:<a href="<?php echo add_query_arg("price","all",selfURL())?>" class="<?php if(!isset($_GET['price']) || $_GET['price'] == 'all') echo 'on';?>">全部</a> <a href="<?php echo add_query_arg("price","free",selfURL())?>" class="<?php if($_GET['price'] == 'free') echo 'on';?>">免费</a> &l...

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' ); 其他地方以此类推。