wordpress的functions基礎實用代碼整理

這是一篇比較基礎的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壓縮
  1. //開啟GZIP壓縮
  2.    if(extension_loaded("zlib") && (ini_get("output_handler") != "ob_gzhandler"))
  3.        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預設外觀的小工具
  1. // unregister all default WP Widgets
  2. function unregister_default_wp_widgets() {
  3. unregister_widget('wp_Widget_Pages');
  4. unregister_widget('wp_Widget_Calendar');
  5. unregister_widget('wp_Widget_Archives');
  6. unregister_widget('wp_Widget_Links');
  7. unregister_widget('wp_Widget_Meta');
  8. unregister_widget('wp_Widget_Search');
  9. unregister_widget('wp_Widget_Text');
  10. unregister_widget('wp_Widget_Categories');
  11. unregister_widget('wp_Widget_Recent_Posts');
  12. unregister_widget('wp_Widget_Recent_Comments');
  13. unregister_widget('wp_Widget_RSS');
  14. unregister_widget('wp_Widget_Tag_Cloud');
  15. }
  16. add_action('widgets_init', 'unregister_default_wp_widgets', 1);

評論 (0)

此處尚未發表評論

留言

  1. 以遊客身份發表評論。 註冊登入到您的帳戶。
附件 (0 / 3)
分享您的位置