用Wordpress建站的初学者一定会需要用到的Wordpress模板主题中functions.php常用功能代码与常用插件。慢慢持续收集整理.......
目录
一、Wordpress模板主题中functions文件常用的代码
二、Wordpress自定义字段的设定与调用代码(系统常规自定义字段)
三、wordpress分类栏目添加自定义字段 (例如栏目图片)
一、Wordpress模板主题中functions文件常用的代码
<?php
// 关闭核心提示
add_filter('pre_site_transient_update_core', create_function('$a', "return null;"));
// 关闭插件提示
add_filter('pre_site_transient_update_plugins', create_function('$a', "return null;"));
// 关闭主题提示
add_filter('pre_site_transient_update_themes', create_function('$a', "return null;"));
add_filter('automatic_updater_disabled', '__return_true'); // 彻底关闭自动更新
remove_action('init', 'wp_schedule_update_checks'); // 关闭更新检查定时作业
wp_clear_scheduled_hook('wp_version_check'); // 移除已有的版本检查定时作业
wp_clear_scheduled_hook('wp_update_plugins'); // 移除已有的插件更新定时作业
wp_clear_scheduled_hook('wp_update_themes'); // 移除已有的主题更新定时作业
wp_clear_scheduled_hook('wp_maybe_auto_update'); // 移除已有的自动更新定时作业
remove_action( 'admin_init', '_maybe_update_core' ); // 移除后台内核更新检查
remove_action( 'load-plugins.php', 'wp_update_plugins' ); // 移除后台插件更新检查
remove_action( 'load-update.php', 'wp_update_plugins' );
remove_action( 'load-update-core.php', 'wp_update_plugins' );
remove_action( 'admin_init', '_maybe_update_plugins' );
remove_action( 'load-themes.php', 'wp_update_themes' ); // 移除后台主题更新检查
remove_action( 'load-update.php', 'wp_update_themes' );
remove_action( 'load-update-core.php', 'wp_update_themes' );
remove_action( 'admin_init', '_maybe_update_themes' );
// 自定义边栏小工具
function wpdf_register_sidebar() {
// 注册第一个边栏
register_sidebar( array(
'name' => '边栏1',
'id' => 'sidebar-1',
'description' => '第一个边栏',
'before_widget' => '<section id="%1$s" class="myclass %2$s">',
'after_widget' => '</section>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
));
// 注册第二个边栏
register_sidebar( array(
'name' => '边栏2',
'id' => 'sidebar-2',
'description' => '第二个边栏',
'before_widget' => '<section id="%1$s" class="%2$s">',
'after_widget' => '</section>',
'before_title' => '<h2 class="widget-title">',
'after_title' => '</h2>',
));
}
add_action( 'widgets_init', 'wpdf_register_sidebar' );
//删除wp-nav-menu函数菜单中多余的css选择器
add_filter('nav_menu_css_class', 'my_css_attributes_filter', 100, 1);
add_filter('nav_menu_item_id', 'my_css_attributes_filter', 100, 1);
add_filter('page_css_class', 'my_css_attributes_filter', 100, 1);
function my_css_attributes_filter($var) {
return is_array($var) ? array() : '';
}
//移除后台用不到的菜单
function yg_remove_menu_page() {
//remove_menu_page('themes.php'); // 移除 "外观"
//remove_menu_page('plugins.php'); // 移除 "插件"
//remove_menu_page('tools.php'); // 移除 "工具"
remove_submenu_page('tools.php','export.php'); //移除工具下的导出
}
add_action( 'admin_menu', 'yg_remove_menu_page' );
//开启wordpress友情链接管理
add_filter( 'pre_option_link_manager_enabled', '__return_true' );
//开启wordpress特色图片
add_theme_support( 'post-thumbnails' );
//WordPress子分类页面使用父页面模板
add_filter('category_template', 'f_category_template');
function f_category_template($template){
$category = get_queried_object();
if($category->parent !='0'){
while($category->parent !='0'){
$category = get_category($category->parent);
}
}
$templates = array();
if ( $category ) {
$templates[] = "category-{$category->slug}.php";
$templates[] = "category-{$category->term_id}.php";
}
$templates[] = 'category.php';
return locate_template( $templates );
}
/**分页 前端调用 <?php kriesi_pagination($query_string); **/
function kriesi_pagination($query_string){
global $posts_per_page, $paged;
$my_query = new WP_Query($query_string ."&posts_per_page=-1");
$total_posts = $my_query->post_count;
if(empty($paged))$paged = 1;
$prev = $paged - 1;
$next = $paged + 1;
$range = 2; // only edit this if you want to show more page-links
$showitems = ($range * 2)+1;
$pages = ceil($total_posts/$posts_per_page);
if(1 != $pages){
echo "<div class='pagination'>";
echo ($paged > 2 && $paged+$range+1 > $pages && $showitems < $pages)? "<a href='".get_pagenum_link(1)."' rel='external nofollow'>最前</a>":"";
echo ($paged > 1 && $showitems < $pages)? "<a href='".get_pagenum_link($prev)."' rel='external nofollow'>上一页</a>":"";
for ($i=1; $i <= $pages; $i++){
if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems )){
echo ($paged == $i)? "<a href='".get_pagenum_link($i)."' class='current'>".$i."</a>":"<a href='".get_pagenum_link($i)."' class='inactive' rel='external nofollow'>".$i."</a>";
}
}
echo ($paged < $pages && $showitems < $pages) ? "<a href='".get_pagenum_link($next)."' rel='external nofollow'>下一页</a>" :"";
echo ($paged < $pages-1 && $paged+$range-1 < $pages && $showitems < $pages) ? "<a href='".get_pagenum_link($pages)."' rel='external nofollow'>最后</a>":"";
echo "</div>\n";
}
}
//面包屑导航
function wz(){
$cat=get_the_category();
$cat=$cat[0];
$positions = '<li><a href="'.get_category_link($cat).'">'.$cat->name. '</a></li>>';
if(!is_home() ){
echo '<li><a href="'. get_settings('home') .'">'. '首页></a></li>';
if(is_category()){
echo $positions;
}
elseif(is_single()){
echo $positions ;
echo the_title();
}
elseif(is_search()){echo $s;}
elseif(is_page()){
the_title();
}elseif(is_404()){echo '404错误页面';}
}
}
//获取当前分类子分类列表
function get_category_root_id($cat){
$this_category = get_category($cat); // 取得当前分类
while($this_category->category_parent) {// 若当前分类有上级分类时,循环
$this_category = get_category($this_category->category_parent); // 将当前分类设为上级分类(往上爬)
}
return $this_category->term_id; // 返回根分类的id号
}
//分类目录后加 /
function nice_trailingslashit($string, $type_of_url) {
if ( $type_of_url != 'single' )
$string = trailingslashit($string);
return $string;
}
add_filter('user_trailingslashit', 'nice_trailingslashit', 10, 2);
//移除WordPress后台顶部左上角的W图标
add_action('wp_before_admin_bar_render', 'annointed_admin_bar_remove', 0);
function annointed_admin_bar_remove() {
global $wp_admin_bar;
/* Remove their stuff */
$wp_admin_bar->remove_menu('wp-logo');
}
//自定义后台登录Logo的Url
add_filter( 'login_headerurl', 'custom_loginlogo_url' );
function custom_loginlogo_url($url) {
return 'http://www.nongyejing.com';
}
// 自定义 WordPress 后台底部的版权和版本信息
add_filter('admin_footer_text', 'left_admin_footer_text');
function left_admin_footer_text($text) {
// 左边信息
$text = '左边版权信息';
return $text;
}
add_filter('update_footer', 'right_admin_footer_text', 11);
function right_admin_footer_text($text) {
// 右边信息
$text = "这是右边信息";
return $text;
}
//屏蔽 WP 后台“显示选项”和“帮助”选项卡
add_filter('screen_options_show_screen', 'remove_screen_options');
add_filter( 'contextual_help', 'remove_wp_help', 999, 3 );
function remove_screen_options(){ return false;}
function remove_wp_help($old_help, $screen_id, $screen){
$screen->remove_help_tabs();
return $old_help;
}
//固定后台管理侧边栏
add_action('admin_head', 'Bing_fixed_adminmenuwrap');
function Bing_fixed_adminmenuwrap(){
echo '<style type="text/css">#adminmenuwrap{position:fixed;left:0px;z-index:2;}</style>';
}
//阻止站内文章互相Pingback
add_action('pre_ping','Bing_noself_ping');
function Bing_noself_ping($links) {
$home = get_option( 'home' );
foreach ( $links as $l => $link )
if ( 0 === strpos( $link, $home ) )
unset($links[$l]);
}
// 增强默认编辑器(mce_buttons:工具栏的第一行;mce_buttons_2:工具栏第二行;mce_buttons_3:工具栏第三行)
add_filter("mce_buttons", "Bing_editor_buttons");
function Bing_editor_buttons($buttons){
//$buttons[] = 'wp_adv'; //隐藏按钮显示开关
$buttons[] = 'wp_adv_start'; //隐藏按钮区起始部分
$buttons[] = 'wp_adv_end'; //隐藏按钮区结束部分
//$buttons[] = 'bold'; //加粗
//$buttons[] = 'italic'; //斜体
$buttons[] = 'underline'; //下划线
$buttons[] = 'strikethrough'; //删除线
$buttons[] = 'justifyleft'; //左对齐
$buttons[] = 'justifycenter'; //居中
$buttons[] = 'justfyright'; //右对齐
$buttons[] = 'justfyfull'; //两端对齐
//$buttons[] = 'bullist'; //无序列表
//$buttons[] = 'numlist'; //编号列表
$buttons[] = 'outdent'; //减少缩进
$buttons[] = 'indent'; //缩进
$buttons[] = 'cut'; //剪切
$buttons[] = 'copy'; //复制
$buttons[] = 'paste'; //粘贴
$buttons[] = 'undo'; //撤销
$buttons[] = 'redo'; //重做
//$buttons[] = 'link'; //插入超链接
$buttons[] = 'unlink'; //取消超链接
$buttons[] = 'image'; //插入图片
$buttons[] = 'removeformat'; //清除格式
$buttons[] = 'code'; //打开HTML代码编辑器
$buttons[] = 'hr'; //水平线
$buttons[] = 'cleanup'; //清除冗余代码
$buttons[] = 'formmatselect'; //格式选择
$buttons[] = 'fontselect'; //字体选择
$buttons[] = 'fontsizeselect'; //字号选择
$buttons[] = 'styleselect'; //样式选择
$buttons[] = 'sub'; //上标
$buttons[] = 'sup'; //下标
$buttons[] = 'forecolor'; //字体颜色
$buttons[] = 'backcolor'; //字体背景色
$buttons[] = 'charmap'; //特殊符号
$buttons[] = 'anchor'; //锚文本
$buttons[] = 'newdocument'; //新建文本
//$buttons[] = 'wp_more'; //插入more标签
$buttons[] = 'wp_page'; //插入分页标签
$buttons[] = 'spellchecker'; //拼写检查
$buttons[] = 'wp_help'; //帮助
//$buttons[] = 'selectall'; //全选
//$buttons[] = 'visualaid'; //显示/隐藏指导线和不可见元素
$buttons[] = 'spellchecker'; //切换拼写检查器状态
$buttons[] = 'pastetext'; //以纯文本粘贴
$buttons[] = 'pasteword'; //从Word中粘贴
//$buttons[] = 'blockquote'; //引用
$buttons[] = 'forecolorpicker'; //选择文字颜色(拾色器)
$buttons[] = 'backcolorpicker'; //选择背景颜色(拾色器)
$buttons[] = 'spellchecker'; //切换拼写检查器状态
return $buttons;
}
//TinyMCE编辑器增强:增加中文字体
add_filter('tiny_mce_before_init', 'custum_fontfamily');
function custum_fontfamily($initArray){
$initArray['font_formats'] = "微软雅黑='微软雅黑';宋体='宋体';黑体='黑体';仿宋='仿宋';楷体='楷体';隶书='隶书';幼圆='幼圆';Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings";
return $initArray;
}
//更改编辑器默认视图为HTML
//add_filter('wp_default_editor', create_function('', 'return "html";'));
//在 WordPress 编辑器中为自定义文章类型设置默认内容
add_filter( 'default_content', 'my_editor_content', 10, 2 );
function my_editor_content( $content, $post ) {
switch( $post->post_type ) {
case 'sources':
$content = 'your content';
break;
case 'stories':
$content = 'your content';
break;
c