wordpress经验总结

作者:stoat 发布时间:2014-08-05 分类:wordpress

记录在麦库的,但是这阵子麦库很傲娇,贴出来咯。

1、 wordpress时间戳命名上传文件。


wp-admin\includes\file.php

查找:

$filename = wp_unique_filename( $uploads['path'], $file['name'], $unique_filename_callback );
在其后加上:

$fileTypeNameArr =explode("." , $filename);
$countNum=count($fileTypeNameArr)-1;
$fileExt =  $fileTypeNameArr[$countNum]; //取得所上传文件后缀名
$filename = time().'-'.rand(0,999999999).'.'.$fileExt;//将文件由原名改为时间戳

2、文章ID连续。支持 WordPress 3.0~3.6 的任何版本。


wp-content/themes/xm/functions.php

function keep_id_continuous(){
    global $wpdb;
    $lastID = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_status = 'publish' OR post_status = 'draft' OR post_status = 'private' OR ( post_status = 'inherit' AND post_type = 'attachment' ) ORDER BY ID DESC LIMIT 1");
    $wpdb->query("DELETE FROM $wpdb->posts WHERE ( post_status = 'auto-draft' OR ( post_status = 'inherit' AND post_type = 'revision' ) ) AND ID > $lastID");
    $lastID++;
    $wpdb->query("ALTER TABLE $wpdb->posts AUTO_INCREMENT = $lastID");
}
// 将函数钩在新建文章、上传媒体和自定义菜单之前。
add_filter( 'load-post-new.php', 'keep_id_continuous' );
add_filter( 'load-media-new.php', 'keep_id_continuous' );
add_filter( 'load-nav-menus.php', 'keep_id_continuous' );
// 禁用自动保存,所以编辑长文章前请注意手动保存。
add_action( 'admin_print_scripts', create_function( '$a', "wp_deregister_script('autosave');" ) );
// 禁用修订版本
remove_action( 'pre_post_update' , 'wp_save_post_revision' );

如果已经存在许多无用记录导致文章不连续怎么办?


  1. 使用wp cleaner插件,删除无用记录。
  2. 使用露兜的重排文章程序(已失效),特别注意:如果固定链接含有文章 ID 且比较在意收录就不要动老文章的 ID 了。

3、WordPress中获取当前页面URL


$current_url = home_url(add_query_arg(array()));

子目录WP的方法 - WordPress中获取当前页面URL


global $wp;
$current_url = home_url(add_query_arg(array(),$wp->request));

4、WordPress子分类遵循父分类模板


<?php if ( in_category( "fruit" ) || post_is_in_descendant_category( 11 ) ) {
    //如果是分类别名为”fruit”或分类ID为“11”以下的所有子分类,那么继续执行。
}
?>

如果子分类中没有文章,模板不生效。还有


post_is_in_descendant_category( 11 )

是ID为11以下的分类,不包括该分类本身。

最后在functions.php文件中加入


if ( ! function_exists( "post_is_in_descendant_category" ) ) {
    function post_is_in_descendant_category( $cats, $_post = null ) {
        foreach ( (array) $cats as $cat ) {
            // get_term_children() accepts integer ID only
            $descendants = get_term_children( (int) $cat, "category" );
            if ( $descendants && in_category( $descendants, $_post ) )
            return true;
        }
        return false;
    }
}

修改管理员后台登录地址wp-login.php


1,复制一份根目录wp-login.php文件命名为admin.php(自己喜欢的名字也就是登录地址),然后将wp-login.php文件改名或者删除,建议删除。然后打开admin.php文件替换其中的wp-login.php全部为admin.php。
2,修改admin.php中,将所有wp-login.php替换为admin.php
3,然后打开wp-includes/目录下的general-template.php文件把其中的wp-login.php替换为admin.php。
注意235行左右的一段内容不要修改或者修改为404地址,因为wp有两个登录地址,另外一个是wp-admin,这个就是默认跳转到wp-login.php的,如果你修改了那不就是访问wp-admin就直接跳转到了正确的登录地址了么,所以千万不能修改,修改为'/'即可。
function wp_login_url($redirect = '', $force_reauth = false) {
$login_url = site_url('/', 'login');
}

移除前后台相关选项


//隐藏wordpress升级提示
add_filter( 'pre_site_transient_update_core', create_function( '$a', "return null;" ) );

//隐藏插件更新提示 WP 3.0+
remove_action( 'load-update-core.php', 'wp_update_plugins' );
add_filter( 'pre_site_transient_update_plugins', create_function( '$b', "return null;" ) );

//隐藏主题更新提示 WP 3.0+
remove_action( 'load-update-core.php', 'wp_update_themes' );
add_filter( 'pre_site_transient_update_themes', create_function( '$c', "return null;" ) );

//移除wordpress顶部关于选项
add_action( 'wp_before_admin_bar_render', function() {
	global $wp_admin_bar;
	$wp_admin_bar->remove_menu('wp-logo');
}, 7 );

原文地址:wordpress经验总结 by 雪鼬博客

标签:wordpress

评论已关闭