wordpress的functions基礎實用代碼整理
點擊數: 2101
文章目錄
- 這是一篇比較基礎的functions收集。
- 那也有些代碼是wordpress舊版的,基本上這些代碼是基礎功能,
- 有需要可以自行去試試看。
- 我挑了一些放上來。
- 一樣所有代碼都是開啟主題的functions.php貼入
- 顯示網站後台的設定,開啟隱藏的管理特性
- 當你使用這段代碼,你可以發現後台的設定,多出一些選單
- 加入自定義jquery
- 這邊調用google的jquery庫
- 刪除WordPress版本號
- 刪除垃圾留言評論中的連結
- 設定文章發送到RSS的時間
- 我們發表文章後,發現有錯誤要修改,但是訂閱rss的讀者,已經發送出去了,我們可以延遲幾分鐘
- 限制修改修訂版本的數量
- 有時候我們會有修訂版,但若不設定,就會無止盡的增加
- 讓搜索結果包括[自定義文章類型]
- 有時候我們自己「自定義」了文章類型,那麼透過這個方法,可以把字敬意文章類型也在搜尋結果中出現
- 為你的自定義文章類型,為網站主要的RSS提要。
- 刪除內置的Wordpress mate box
- 可以自動壓縮jpg圖片大小
- 開啟GZIP壓縮
- 刪除不需要控制台(後台)項目
- 取消WP預設外觀的小工具
這是一篇比較基礎的functions收集。
那也有些代碼是wordpress舊版的,基本上這些代碼是基礎功能,
有需要可以自行去試試看。
我挑了一些放上來。
一樣所有代碼都是開啟主題的functions.php貼入
顯示網站後台的設定,開啟隱藏的管理特性
當你使用這段代碼,你可以發現後台的設定,多出一些選單
[cc lang="php"] // CUSTOM ADMIN MENU LINK FOR ALL SETTINGS function all_settings_link() { add_options_page(__('All Settings'), __('All Settings'), 'administrator', 'options.php'); } add_action('admin_menu', 'all_settings_link'); [/cc]加入自定義jquery
這邊調用google的jquery庫
[cc lang="php"] // even more smart jquery inclusion add_action( 'init', 'jquery_register' ); // register from google and for footer function jquery_register() { if ( !is_admin() ) { wp_deregister_script( 'jquery' ); wp_register_script( 'jquery', ( 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js' ), false, null, true ); wp_enqueue_script( 'jquery' ); } } [/cc]刪除WordPress版本號
[cc lang="php"] // 刪除WordPress版本號 function complete_version_removal() { return ''; } add_filter('the_generator', 'complete_version_removal'); [/cc]刪除垃圾留言評論中的連結
[cc lang="php"] //刪除垃圾留言評論中的連結 // spam & delete links for all versions of wordpress function delete_comment_link($id) { if (current_user_can('edit_post')) { echo '| del '; echo '| spam'; } } [/cc]設定文章發送到RSS的時間
我們發表文章後,發現有錯誤要修改,但是訂閱rss的讀者,已經發送出去了,我們可以延遲幾分鐘
[cc lang="php"] // delay feed update //設定文章發送到RSS的時間< function publish_later_on_feed($where) { global $wpdb; if (is_feed()) { // timestamp in WP-format $now = gmdate('Y-m-d H:i:s'); // value for wait; + device $wait = '10'; // integer // http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff $device = 'MINUTE'; // MINUTE, HOUR, DAY, WEEK, MONTH, YEAR // add SQL-sytax to default $where $where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait "; } return $where; } add_filter('posts_where', 'publish_later_on_feed'); [/cc]限制修改修訂版本的數量
有時候我們會有修訂版,但若不設定,就會無止盡的增加
[cc lang="php"] //限制修改修訂版本的數量 if (!defined('wp_POST_REVISIONS')) define('wp_POST_REVISIONS', 5); [/cc]讓搜索結果包括[自定義文章類型]
有時候我們自己「自定義」了文章類型,那麼透過這個方法,可以把字敬意文章類型也在搜尋結果中出現
[cc lang="php"] // 讓搜索結果包括[自定義文章類型] function searchAll( $query ) { if ( $query->is_search ) { $query->set( 'post_type', array( 'site', 'plugin', 'theme', 'person' )); } return $query; } add_filter( 'the_search_query', 'searchAll' ); [/cc]為你的自定義文章類型,為網站主要的RSS提要。
[cc lang="php"] // ADD CUSTOM POST TYPES TO THE DEFAULT RSS FEED function custom_feed_request( $vars ) { if (isset($vars['feed']) && !isset($vars['post_type'])) $vars['post_type'] = array( 'post', 'site', 'plugin', 'theme', 'person' ); return $vars; } add_filter( 'request', 'custom_feed_request' ); [/cc]刪除內置的Wordpress mate box
[cc lang="php"] function remove_post_meta_box() { remove_meta_box('slugdiv', 'post', 'normal'); } add_action('admin_menu', 'remove_post_meta_box'); [/cc]可以自動壓縮jpg圖片大小
[cc lang="php"] //可以自動壓縮jpg圖片大小 function ajx_sharpen_resized_files( $resized_file ) { $image = wp_load_image( $resized_file ); if ( !is_resource( $image ) ) return new wp_Error( 'error_loading_image', $image, $file ); $size = @getimagesize( $resized_file ); if ( !$size ) return new wp_Error('invalid_image', __('Could not read image size'), $file); list($orig_w, $orig_h, $orig_type) = $size; switch ( $orig_type ) { case IMAGETYPE_JPEG: $matrix = array( array(-1, -1, -1), array(-1, 16, -1), array(-1, -1, -1), ); $divisor = array_sum(array_map('array_sum', $matrix)); $offset = 0; imageconvolution($image, $matrix, $divisor, $offset); imagejpeg($image, $resized_file,apply_filters( 'jpeg_quality', 90, 'edit_image' )); break; case IMAGETYPE_PNG: return $resized_file; case IMAGETYPE_GIF: return $resized_file; } return $resized_file; } add_filter('image_make_intermediate_size', 'ajx_sharpen_resized_files',900); [/cc]開啟GZIP壓縮
- //開啟GZIP壓縮
- if(extension_loaded("zlib") && (ini_get("output_handler") != "ob_gzhandler"))
- add_action('wp', create_function('', '@ob_end_clean();@ini_set("zlib.output_compression", 1);'));
刪除不需要控制台(後台)項目
[cc lang="php"] add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets'); function my_custom_dashboard_widgets() { global $wp_meta_boxes; //Right Now - Comments, Posts, Pages at a glance unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']); //Recent Comments unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']); //Incoming Links unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']); //Plugins - Popular, New and Recently updated WordPress Plugins unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']); //Wordpress Development Blog Feed unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); //Other WordPress News Feed unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']); //Quick Press Form unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']); //Recent Drafts List unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']); } [/cc]取消WP預設外觀的小工具
- // unregister all default WP Widgets
- function unregister_default_wp_widgets() {
- unregister_widget('wp_Widget_Pages');
- unregister_widget('wp_Widget_Calendar');
- unregister_widget('wp_Widget_Archives');
- unregister_widget('wp_Widget_Links');
- unregister_widget('wp_Widget_Meta');
- unregister_widget('wp_Widget_Search');
- unregister_widget('wp_Widget_Text');
- unregister_widget('wp_Widget_Categories');
- unregister_widget('wp_Widget_Recent_Posts');
- unregister_widget('wp_Widget_Recent_Comments');
- unregister_widget('wp_Widget_RSS');
- unregister_widget('wp_Widget_Tag_Cloud');
- }
- add_action('widgets_init', 'unregister_default_wp_widgets', 1);