WordPress教程
模板兔提供专业的wordpress建站教程、wordpress主题开发教程、wordpress插件开发教程、wordpress二次开发教程等。
WordPress教程:在wordpress里有个函数wp_link_pages是给文章内容分页的,可是默认的只支持要么显示数字,要么显示下一页按钮,而没有同时显示的,肿么办,将以下代码加入主题的functions.php里即可:
add_filter('wp_link_pages_args', 'wp_link_pages_args_prevnext_add');
function wp_link_pages_args_prevnext_add($args){
global $page, $numpages, $more, $pagenow;
if (!$args['next_or_number'] == 'next_and_number')
return $args; # exit early
$args['next_or_number'] = 'number'; # keep numbering for the main part
if (!$more)
return $args; # exit early
if($page-1) # there is a previous page
$args['before'] ...
WordPress教程:最近给一个客户定制一款wordperss主题,其中需要一个显示一个月内的热门文章,模板兔相信这个功能很常见,简单点的就是根据访问量来排序了,下面核心代码如下:
$date_query=array(
array(
'column' => 'post_date',
'before' => date('Y-m-d',time()+3600*24),
'after' =>date('Y-m-d',time()-3600*24*30)
)
);
$args = array(
'order' => 'DESC',
'orderby' => 'meta_value_num',
'cat' => $cat,
'meta_key' => 'views',
'date_query' => $date_query,
'showposts' => $limit,
'ignore_sticky_posts' => 1
);
query_posts($args);
WordPress教程:wordpress自带的文本编辑器功能一般有限,无法设置字体大小,这个很鸡肋。
将以下代码加入到主题的functions.php里即可:
function MBT_add_editor_buttons($buttons) {
$buttons[] = 'fontselect';
$buttons[] = 'fontsizeselect';
$buttons[] = 'cleanup';
$buttons[] = 'styleselect';
$buttons[] = 'del';
$buttons[] = 'sub';
$buttons[] = 'sup';
$buttons[] = 'copy';
$buttons[] = 'paste';
$buttons[] = 'cut';
$buttons[] = 'image';
$buttons[] = 'anchor';
$buttons[] = 'backcolor';
$buttons[] = 'wp_page';
$buttons[] = 'charmap';
return $buttons;
}
add_filter("mce_buttons_2", "M...
WordPress教程:有很多用户跟模板兔反应在wp默认页面注册时,提示点击链接设置密码,可是点击后会提示“要设置您的密码,请访问以下地址:”。这里模板兔提供一个比较死板的方法,就是修改默认的wp-login.php文件。
1.修改wordpress目录下的 wp-login.php文件
将
$message .= '<' . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') . ">\r\n";
修改为:
$message .=network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') . "\r\n";
2.wordpress安装目录下的/wp-includes/pluggable.php文件
将:
$message .= '<' . network...
WordPress教程:最近模板兔在给一个客户弄ucenter的集成,虽然之前有一个开发者已经开发了一个ucenter插件,可是由于作者长期不更新,可能导致功能失效或不完善了,为了广大用户,于是模板兔开发了一个wordpress ucenter的插件,过程中遇到过一个问题就是无法同步修改密码,通过研究一番后得知Ucenter服务端在修改密码通知应用时传的是一个空值,无语了,提供了接口居然不实现其功能。。。那怎么办,只能修改Ucenter(版本:UCenter_1.6.0_SC_UTF8)源码呗。
1、修改Ucenter后台修改密码后的通知(文件路径:Ucenter安装目录/control/admin/user.php)
找到onedit函数(254行),然后修改286行,看标红部分。
$_ENV['note']->add('updatepw', 'us...
WordPress教程:之前有个客户找模板兔做wordpress多重筛选功能,主要通过自定义分类法来筛选。下面给出大致的代码片段,供有一定开发基础的人看,若不懂代码,可联系模板兔开发。
处理过滤的代码:
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'post_type' => 'post',
'paged' => $paged
);
$args['tax_query'] = array();
if(isset($_GET['city']) && $_GET['city'] > 0){
array_push($args['tax_query'], array('taxonomy' => 'city','field' => 'term_id','terms' => $_GET['city']) );
}
if(isset($_GET['function']) && $_GET['function'] > 0){
...
WordPress教程:很多用户遇到一个烦人的问题,那就是只要网站的用户修改了密码,都会给管理员发送邮件,这个模板兔相信大多数站长都不需要收到此通知。
如果要禁用这个通知的话,可通过插件的方式来实现,在网站后台插件安装界面搜索 Disable Password Changed Notifications 在线安装后激活即可生效。
也可以不用插件,加以下代码:
if ( ! function_exists( 'wp_password_change_notification' ) ) {
function wp_password_change_notification( $user ) {
return;
}
}
如果要禁止给用户自己发修改密码成功通知,可加以下代码:
add_filter( 'send_password_change_email', '__return_false' );
同时都禁用的话,用模板兔修改了一下的这...
WordPress教程:最近有个客户提到这样一个需要,就是首页先显示20篇文章,再每页加载10篇(点击加载更多),这样就与一般的分页不一样了,既要保证文章不重复,也要保证分页正确。请看下面代码:
function MBThemes_offset_firstpage( $query ) {
if ( $query->is_main_query() && !is_admin() && $query->get('post_type') != 'project') {
$offset = 10;
$query->set( 'post_type', 'post' );
$query->set( 'post_status', 'publish' );
$query->set( 'ignore_sticky_posts', '-1' );
$ppp = get_option('posts_per_page');
if (!$query->is_paged()) {
$query->set('posts_per_page',$offset + ...
WordPress教程:// remove the old box
function remove_default_categories_box() {
remove_meta_box('categorydiv', 'post', 'side');
}
add_action( 'admin_head', 'remove_default_categories_box' );
// add the new box
function add_custom_categories_box() {
add_meta_box('customcategorydiv', 'Categories', 'custom_post_categories_meta_box', 'post', 'side', 'low', array( 'taxonomy' => 'category' ));
}
add_action('admin_menu', 'add_custom_categories_box');
/**
* Display CUSTOM post categories form fields.
*
* @since 2.6.0
*
* @param object $post
*/
function custom_post_categories_meta_b...
WordPress教程:最近给某个客户定制主题时需要实现无限下拉加载功能,以往模板兔都是用某个js插件来实现了,今天教大家一个不用插件实现的方法:
首页,在php里加上相关代码:
<div class="article-list mobantu" id="article-list">
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'caller_get_posts' => 1,
'paged' => $paged
);
query_posts($args);
while ( have_posts() ) : the_post();
get_template_part( 'content', get_post_format() );
endwhile; wp_reset_query();
?>
</div>
<?php
$next_page = get_next_posts_link('加载更多');
if...
WordPress教程:有时候我们需要为网站添加一个自定义文章类型,但是当访问此文章类型页面时,如何获取相关联的文章呢?请看以下代码:
$terms = get_the_terms( $post->ID , 'product_tags', 'string');
$term_ids = wp_list_pluck($terms,'term_id');
$second_query = new WP_Query( array(
'post_type' => 'products',
'tax_query' => array(
array(
'taxonomy' => 'product_tags',
'field' => 'id',
'terms' => $term_ids,
'operator'=> 'IN' //Or 'AND' or 'NOT IN'
)),
'posts_per_page' => 3,
'ignore_sticky_posts' => 1,
'orderby' => 'rand',
'post__not_in'=>array($post->ID...
WordPress教程:网站要是置顶文章多了,就会堆积在网站首页,那么怎么不显示置顶的文章呢?
<?php
$the_query = new WP_Query( array( 'post__not_in' => get_option( 'sticky_posts' ) ) );
if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post();
?>
WordPress教程:面包屑导航对于一个网站SEO来说还是挺重要的,可以使用以下代码来给自己的主题添加面包屑,将以下代码加入到主题的functions.php里:
function MBThemes_breadcrumbs() {
/* === OPTIONS === */
$text['home'] = '首页';
$text['category'] = '%s';
$text['search'] = '搜索结果:%s';
$text['tag'] = '标签:%s';
$text['author'] = '作者:%s';
$text['404'] = '404';
$text['page'] = '%s';
$text['cpage'] = '%s';
$wrap_before = '<div class="breadcrumbs">';
$wrap_after = '</div>';
$sep = '>';
$sep_before = '<span class="sep">';
$sep_after = '</span>'; ...
WordPress教程:最近给一个用户做手机端的滑动菜单,用到某个js,但是其中需要往item写一个固定的class才行,所以必须使用wp_nav_menu来给li添加自定义的class,那么将以下代码加入主题的functions.php里即可:
function MBT_menu_classes($classes, $item, $args) {
if($args->theme_location == 'mobile') { //这里的mobile是菜单的id
$classes[] = 'custom-class';
}
return $classes;
}
add_filter('nav_menu_css_class','MBT_menu_classes',1,3);
WordPress教程:在本站购买下载了erphpdown wordpress下载插件之后,解压压缩包,看到一个erphpdown.zip,在网站后台(插件-安装插件)上传erphpdown.zip安装包,或者解压erphpdown.zip通过FTP/SFTP上传到网站目录(/wp-content/plugins/)下,然后启用插件。
以后升级插件是在本站下载最新版后直接FTP覆盖即可,不会影响网站数据。
启用插件后,后台左侧会出现一个Erphpdown菜单,设置下 基础设置、支付设置、显示设置、VIP设置,然后发布文章的时候你会在编辑框下面看到Erphpdown属性来设置下载信息的选项。
如果你需要采集,请看https://www.mobantu.com/9107.html
具体截图:(看不清楚的可以把图片下载下来看)
图片下载链接: https://pan.ba...