นี่คือรายการฟังก์ชัน WordPress ที่มีประโยชน์ซึ่งฉันมักอ้างอิงถึงเพื่อปรับปรุงหรือล้างข้อมูลไซต์ของฉัน โปรดใช้ความระมัดระวังและทำการสำรองข้อมูล
ซ่อน WordPress Update Nag ถึงทั้งหมดยกเว้นผู้ดูแลระบบ
ใช้ชื่อ WordPress ที่เหมาะสม
สร้างวิดเจ็ตแดชบอร์ด WordPress แบบกำหนดเอง
ลบวิดเจ็ตแดชบอร์ดทั้งหมด
รวมเมนูนำทาง
แทรกโลโก้เข้าสู่ระบบแบบกำหนดเอง
แก้ไขข้อความส่วนท้ายของผู้ดูแลระบบ
จัดคิวสไตล์และสคริปต์
จัดคิวแบบอักษรของ Google
แก้ไขความยาวข้อความที่ตัดตอนมา
เปลี่ยนลิงค์อ่านเพิ่มเติม
เปลี่ยนแปลงข้อความที่ตัดตอนมาเพิ่มเติม
ปิดการใช้งาน Emoji Mess
ลบความคิดเห็น
เปลี่ยน URL แกลเลอรีสื่อ
สร้างขนาดภาพขนาดย่อที่กำหนดเอง
เพิ่มหมวดหมู่สำหรับไฟล์แนบ
เพิ่มแท็กสำหรับไฟล์แนบ
เพิ่มข้อความที่ตัดตอนมาแบบกำหนดเองลงในเพจ
สร้างสตริงสากล
สนับสนุนภาพเด่น
แบบฟอร์มการค้นหาการสนับสนุน
การยกเว้นหน้าจากการค้นหา
ปิดการใช้งาน XMLRPC
หนี HTML ในโพสต์
สร้างการตั้งค่าส่วนกลางแบบกำหนดเอง
ลบแถบผู้ดูแลระบบ WordPress
เพิ่มเมตาแท็ก Open Graph
เพิ่มประเภทโพสต์ที่กำหนดเอง
ใช้การเชื่อมต่อล่วงหน้ากับ Google Fonts ในธีม
เพิ่มคอลัมน์ภาพขนาดย่อในการโพสต์รายการ
เพิ่มคลาสตะกั่วลงในย่อหน้าแรก
ยกเว้นประเภทโพสต์ที่กำหนดเองจากการค้นหา
ลบสตริงการสอบถามออกจากทรัพยากรแบบคงที่
ปิดการใช้งานฟิลด์เว็บไซต์จากแบบฟอร์มแสดงความคิดเห็น
แก้ไข jQuery
ปิดใช้ JSON Rest API
สลับประเภทโพสต์
PHP Logger
แสดงแถบที่สองใน TinyMCE เสมอ
ลบรายการเมนูผู้ดูแลระบบขึ้นอยู่กับบทบาทของผู้ใช้
ลบรายการเมนูผู้ดูแลระบบขึ้นอยู่กับที่อยู่อีเมล (โดเมน)
เรียงลำดับรายการเมนูผู้ดูแลระบบใหม่
แยกหมวดหมู่ออกจาก WordPress Loops
ปิดใช้งานข้อความ "JQMIGRATE: ติดตั้ง Migrate แล้ว เวอร์ชัน 1.4.1"
โหลดสคริปต์บุคคลที่สามจำนวนมากในภายหลังเพื่อประสิทธิภาพที่ดีขึ้น
/** * ซ่อนการอัปเดต WordPress จู้จี้ทุกคนยกเว้นผู้ดูแลระบบ */ function Hide_update_notice_to_all_but_admin() { if ( !current_user_can( 'update_core' ) ) { Remove_action( 'admin_notices', 'update_nag', 3 ); - }add_action( 'admin_head', 'hide_update_notice_to_all_but_admin', 1 );
ตรวจสอบให้แน่ใจว่าได้ลบแท็ก <title>
ออกจากส่วนหัวของคุณ
/** * ใช้ชื่อ WordPress ที่เหมาะสม */add_theme_support( 'title-tag' );
/** * สร้างวิดเจ็ตแดชบอร์ด WordPress แบบกำหนดเอง */ function Dashboard_widget_function() { echo ' <h2>วิดเจ็ตแดชบอร์ดแบบกำหนดเอง</h2> <p>เนื้อหาแบบกำหนดเองที่นี่</p> '; }ฟังก์ชัน add_dashboard_widgets() { wp_add_dashboard_widget( 'custom_dashboard_widget', 'วิดเจ็ต Dashoard แบบกำหนดเอง', 'dashboard_widget_function' ); }add_action( 'wp_dashboard_setup', 'add_dashboard_widgets' );
/** * ลบวิดเจ็ตแดชบอร์ดทั้งหมด */ ฟังก์ชั่น Remove_dashboard_widgets() { global $wp_meta_boxes; unset( $wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press'] ); unset( $wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links'] ); unset( $wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now'] ); unset( $wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins'] ); unset( $wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_drafts'] ); unset( $wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments'] ); unset( $wp_meta_boxes['dashboard']['side']['core']['dashboard_primary'] ); unset( $wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary'] ); Remove_meta_box( 'dashboard_activity', 'dashboard', 'normal' ); }add_action( 'wp_dashboard_setup', 'remove_dashboard_widgets' );
/** * รวมเมนูการนำทาง */function register_my_menu() { register_nav_menu( 'nav-menu', __( 'Navigation Menu' ) ); }add_action( 'init', 'register_my_menu' );
แทรกสิ่งนี้ในตำแหน่งที่คุณต้องการให้ปรากฏ และบันทึกเมนูใน Appearance -> Menus
wp_nav_menu( array( 'theme_location' => 'nav-menu' ) );
นี่คือรหัสสำหรับหลายเมนู:
ฟังก์ชั่น register_my_menus() { register_nav_menus( array( 'new-menu' => __( 'New Menu' ), 'another-menu' => __( 'Another Menu' ), 'an-extra-menu' => __( 'เมนูเสริม' ), - - }add_action( 'init', 'register_my_menus' );
/** * ใส่โลโก้เข้าสู่ระบบที่กำหนดเอง */ function custom_login_logo() { echo ' <style> .login h1 a { background-image: url(image.jpg) !important; ขนาดพื้นหลัง: 234px 67px; ความกว้าง:234px; ความสูง:67px; จอแสดงผล:บล็อก; } </สไตล์> '; }add_action( 'login_head', 'custom_login_logo' );
/** * แก้ไขข้อความส่วนท้ายของผู้ดูแลระบบ */ function modified_footer() { echo 'สร้างโดย <a href="mailto:[email protected]">คุณ</a>.'; }add_filter( 'admin_footer_text', 'modify_footer' );
/** * จัดคิวสไตล์และสคริปต์ */ function custom_scripts() { wp_enqueue_style( 'bootstrap', get_template_directory_uri() . '/css/bootstrap.min.css', array(), '3.3.6' ); wp_enqueue_style( 'สไตล์', get_template_directory_uri() . '/css/style.css' ); wp_enqueue_script( 'bootstrap', get_template_directory_uri() . '/js/bootstrap.min.js', array('jquery'), '3.3.6', จริง ); wp_enqueue_script( 'สคริปต์', get_template_directory_uri() . '/js/script.js' ); }add_action( 'wp_enqueue_scripts', 'custom_scripts' );
/** * จัดคิวแบบอักษรของ Google */ function google_fonts() { wp_register_style( 'OpenSans', '//fonts.googleapis.com/css?family=Open+Sans:400,600,700,800' ); wp_enqueue_style( 'OpenSans' ); }add_action( 'wp_print_styles', 'google_fonts' );
/** * แก้ไขความยาวข้อความที่ตัดตอนมา */ ฟังก์ชั่น custom_excerpt_length( $length ) { return 25; }add_filter( 'ข้อความที่ตัดตอนมา_ความยาว', 'custom_excerpt_length', 999 );
/** * Change Read More link */ function custom_read_more_link() { return '<a href="' . get_permalink() . '">อ่านเพิ่มเติม</a>'; }add_filter( 'the_content_more_link', 'custom_read_more_link' );
/** * เปลี่ยนข้อความที่ตัดตอนมาเพิ่มเติม */ function custom_more_excerpt( $more ) { return '...'; }add_filter( 'ข้อความที่ตัดตอนมา_more', 'custom_more_excerpt' );
/** * ปิดการใช้งาน Emoji ยุ่ง */ ฟังก์ชั่นdisable_wp_emojicons() { Remove_action( 'admin_print_styles', 'print_emoji_styles' ); Remove_action( 'wp_head', 'print_emoji_detection_script', 7 ); Remove_action( 'admin_print_scripts', 'print_emoji_detection_script' ); Remove_action( 'wp_print_styles', 'print_emoji_styles' ); Remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' ); Remove_filter( 'the_content_feed', 'wp_staticize_emoji' ); Remove_filter( 'comment_text_rss', 'wp_staticize_emoji' ); add_filter( 'tiny_mce_plugins', 'disable_emojicons_tinymce' ); add_filter( 'emoji_svg_url', '__return_false' ); }add_action( 'init', 'disable_wp_emojicons' );ฟังก์ชั่นdisable_emojicons_tinymce( $plugins ) { return is_array( $plugins ) ? array_diff( $plugins, array( 'wpemoji' ) ) : array(); -
/** * ลบความคิดเห็น */ // ลบออกจากฟังก์ชันเมนูของผู้ดูแลระบบ my_remove_admin_menus() { Remove_menu_page( 'edit-comments.php' ); }add_action( 'admin_menu', 'my_remove_admin_menus' );// ลบออกจากโพสต์และฟังก์ชันเพจ Remove_comment_support() { Remove_post_type_support( 'post', 'comments' ); Remove_post_type_support( 'หน้า', 'ความคิดเห็น' ); }add_action( 'init', 'remove_comment_support', 100 );// ลบออกจาก barfunction ผู้ดูแลระบบ mytheme_admin_bar_render() { global $wp_admin_bar; $wp_admin_bar->remove_menu( 'ความคิดเห็น' ); }add_action( 'wp_before_admin_bar_render', 'mytheme_admin_bar_render' );
/** * เปลี่ยน URL แกลเลอรีสื่อ */ if ( ว่างเปล่า( get_option( 'upload_url_path' ) ) ) { update_option( 'upload_url_path', 'http://assets.website.com/wp-content/uploads' ); -
นอกจากนี้ คุณยังสามารถกรองค่าตัวเลือกก่อนที่จะดึงข้อมูลจากฐานข้อมูลได้ ซึ่งจะดีกว่าเล็กน้อย:
/** * เปลี่ยน URL แกลเลอรีสื่อ */ add_filter( 'pre_option_upload_url_path', function() { return 'http://assets.website.com/wp-content/uploads'; -
/** * สร้างขนาดภาพขนาดย่อที่กำหนดเอง */ add_image_size( 'ภาพขนาดย่อที่กำหนดเอง', 250, 250, จริง );
ดึงภาพขนาดย่อ
$thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'ภาพขนาดย่อที่กำหนดเอง' );echo $thumb[0];
ตั้งแต่ WordPress 4.4.0 คุณสามารถใช้:
the_post_thumbnail_url( $ขนาด );
/** * เพิ่มหมวดหมู่สำหรับไฟล์แนบ */ function add_categories_for_attachments() { register_taxonomy_for_object_type( 'category', 'attachment' ); }add_action( 'init' , 'add_categories_for_attachments' );
/** * เพิ่มแท็กสำหรับไฟล์แนบ */ function add_tags_for_attachments() { register_taxonomy_for_object_type( 'post_tag', 'attachment' ); }add_action( 'init' , 'add_tags_for_attachments' );
/** * เพิ่มข้อความที่ตัดตอนมาแบบกำหนดเองในหน้า */ function add_page_excerpt() { add_post_type_support( 'page', array( 'excerpt' ) ); }add_action( 'init', 'add_page_excerpt' );
/** * สร้างสตริงโกลบอล */ function global_string() { return 'String'; -
ดึงฟิลด์
เสียงสะท้อน global_string();
/** * สนับสนุนรูปภาพเด่น */ add_theme_support( 'post-thumbnails' );
/** * รองรับแบบฟอร์มการค้นหา */ add_theme_support( 'html5', array( 'search-form' ) );
/** * ไม่รวมหน้าจากการค้นหา */ ฟังก์ชั่นละเว้น_pages_from_search() { global $wp_post_types; $wp_post_types['หน้า']->exclude_from_search = true; }add_action( 'init', 'exclude_pages_from_search' );
/** * ปิดการใช้งาน xmlrpc.php */ add_filter( 'xmlrpc_enabled', '__return_false' );remove_action( 'wp_head', 'rsd_link' );remove_action( 'wp_head', 'wlwmanifest_link' );
/** * หลีก HTML ในแท็ก <code> หรือ <pre><code> */ function EscapeHTML($arr) { if (version_compare(PHP_VERSION, '5.2.3') >= 0) { $output = htmlspecialchars($arr[2], ENT_NOQUOTES, get_bloginfo('charset'), false); } else { $specialChars = array( '&' => '&', '<' => '<', '>' => '>' - // ถอดรหัสข้อมูลที่แปลงแล้ว $data = htmlspecialchars_decode( $arr[2] ); // หลีกเลี่ยงข้อมูลทั้งหมดภายใน <pre> $output = strtr( $data, $specialChars ); } if (! Empty($output)) { return $arr[1] . $เอาท์พุท $arr[3]; } อื่น { กลับ $arr[1] . $arr[2] . $arr[3]; - }function filterCode($data) { // ไม่แสดงข้อคิดเห็น หากคุณต้องการยกเว้นสิ่งใดๆ ภายในแท็ก <pre> //$modifiedData = preg_replace_callback( '@(<pre.*>)(.*)(</pre>) @isU', 'escapeHTML', $data ); $modifiedData = preg_replace_callback( '@(<code.*>)(.*)(</code>)@isU', 'escapeHTML', $data ); $modifiedData = preg_replace_callback( '@(<tt.*>)(.*)(</tt>)@isU', 'escapeHTML', $modifiedData ); ส่งคืน $modifiedData; }add_filter( 'content_save_pre', 'filterCode', 9 );add_filter( 'excerpt_save_pre', 'filterCode', 9 );
แก้ไขจาก Escape HTML
/** * สร้างการตั้งค่าส่วนกลางแบบกำหนดเอง */ function custom_settings_page() { ?> <div class="ห่อ"> <h1>การตั้งค่าแบบกำหนดเอง</h1> <form method="post" action="options.php"> <?php settings_fields( 'section' ); do_settings_sections( 'ตัวเลือกธีม' ); ส่ง_ปุ่ม(); - </แบบฟอร์ม> </div><?php }function custom_settings_add_menu() { add_theme_page( 'การตั้งค่าแบบกำหนดเอง', 'การตั้งค่าแบบกำหนดเอง', 'manage_options', 'การตั้งค่าแบบกำหนดเอง', 'custom_settings_page', null, 99 ); }add_action( 'admin_menu', 'custom_settings_add_menu' );// ตัวอย่างฟังก์ชั่นการตั้งค่า setting_twitter() { ?> <input type="text" name="twitter" id="twitter" value="<?php echo get_option('twitter'); ?>" /><?php }ฟังก์ชัน custom_settings_page_setup() { add_settings_section( 'section' , 'การตั้งค่าทั้งหมด', null, 'ตัวเลือกธีม' ); add_settings_field( 'twitter', 'ชื่อผู้ใช้ Twitter', 'setting_twitter', 'ตัวเลือกธีม', 'ส่วน' ); register_setting( 'ส่วน', 'ทวิตเตอร์' ); }add_action( 'admin_init', 'custom_settings_page_setup' );
ดึงฟิลด์
เสียงสะท้อน get_option( 'ทวิตเตอร์' );
แก้ไขจากสร้างหน้าการตั้งค่าธีม WordPress ด้วยการตั้งค่า API
/** * ลบแถบผู้ดูแลระบบ WordPress */function Remove_admin_bar() { Remove_action( 'wp_head', '_admin_bar_bump_cb' ); }add_action( 'get_header', 'remove_admin_bar' );
/** * เพิ่มเมตาแท็กกราฟเปิด */function meta_og() { global $post; if ( is_single() ) { if( has_post_thumbnail( $post->ID ) ) { $img_src = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'ภาพขนาดย่อ' ); - $ข้อความที่ตัดตอนมา = strip_tags( $post->post_content ); $excerpt_more = ''; if ( strlen($ข้อความที่ตัดตอนมา) > 155) { $ข้อความที่ตัดตอนมา = substr( $ข้อความที่ตัดตอนมา,0,155 ); $excerpt_more = ' ...'; } $excerpt = str_replace( '"', '', $excerpt ); $excerpt = str_replace( "'", '', $excerpt ); $excerptwords = preg_split( '/[nrt ]+/ ', $ข้อความที่ตัดตอนมา, -1, PREG_SPLIT_NO_EMPTY ); array_pop( $ข้อความที่ตัดตอนมา ); ระเบิด( ' ', $excerptwords ) . $excerpt_more; ?><meta name="author" content="Your Name"> <meta name="description" content="<?php echo $excerpt; ?>"> <meta property="og:title" content="<?php echo the_title(); ?>"> <meta property="og:description" content="<?php echo $excerpt; ?>"> <meta property="og:type" content="article"> <meta property="og:url" content="<?php echo the_permalink(); ?>"> <meta property="og:site_name" content="ชื่อเว็บไซต์ของคุณ"> <meta property="og:image" content="<?php echo $img_src[0]; ?>"><?php } อื่น ๆ { กลับ; - }add_action('wp_head', 'meta_og', 5);
/** * เพิ่มประเภทโพสต์ที่กำหนดเอง */function create_custom_post() { register_post_type( 'custom-post', // slug สำหรับอาร์เรย์ประเภทโพสต์ที่กำหนดเอง( 'labels' => array( 'name' => __( 'โพสต์ที่กำหนดเอง' ) ), 'สาธารณะ' => จริง, 'ลำดับชั้น' => จริง, 'has_archive' => true, 'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail' - 'can_export' => จริง, 'taxonomies' => array( 'post_tag', 'หมวดหมู่' - - }add_action('init', 'create_custom_post');
/** * ใช้การเชื่อมต่อล่วงหน้ากับ Google Fonts ในธีม */function ยี่สิบห้า_resource_hints( $urls, $relation_type ) { // ตรวจสอบว่าหัวเรื่องมีแหล่งที่มาของแบบอักษร google และ `$relation_type` เท่ากับการเชื่อมต่อล่วงหน้าหรือไม่ // แทนที่ `enqueue_font_id` เป็น `ID` ที่ใช้ในการโหลดซอร์ส if ( wp_style_is( 'enqueue_font_id', 'queue' ) && 'preconnect' === $relation_type ) { // ตรวจสอบว่าเวอร์ชันของ WordPress มากกว่าหรือเท่ากับ 4.7 // เพื่อให้แน่ใจว่าเข้ากันได้กับเวอร์ชันเก่ากว่า // เนื่องจาก 4.7 จำเป็นต้องส่งคืนอาร์เรย์แทนสตริงถ้า ( version_compare( $GLOBALS['wp_version'], '4.7-alpha', '>=' ) ) { // อาร์เรย์ที่มี url แบบอักษรของ Google และ crossorigin $urls[] = array( 'href' => 'https://fonts.gstatic.com', 'crossorigin', - } else { // สตริงด้วย url google fonts $urls[] = 'https://fonts.gstatic.com'; - } ส่งคืน $urls; }add_filter( 'wp_resource_hints', 'twentyfifteen_resource_hints', 10, 2 );
/** * เพิ่มคอลัมน์รูปขนาดย่อในการโพสต์รายการ */add_image_size( 'admin-list-thumb', 80, 80, false );function wpcs_add_thumbnail_columns( $columns ) { ถ้า ( !is_array( $columns ) ) $columns = array(); $ใหม่ = อาร์เรย์(); foreach( $columns as $key => $title ) { if ( $key == 'title' ) // วางคอลัมน์รูปขนาดย่อไว้หน้าคอลัมน์ Title $new['featured_thumb'] = __( 'Image'); $ใหม่[$key] = $title; } ส่งคืน $ใหม่; }ฟังก์ชั่น wpcs_add_thumbnail_columns_data( $column, $post_id ) { switch ( $column ) { case 'featured_thumb': echo '<a href="' . $post_id . '">'; echo the_post_thumbnail( 'admin-list-thumb' ); เสียงสะท้อน '</a>'; หยุดพัก; - } ถ้า ( function_exists( 'add_theme_support' ) ) { add_filter( 'manage_posts_columns' , 'wpcs_add_thumbnail_columns' ); add_action( 'manage_posts_custom_column' , 'wpcs_add_thumbnail_columns_data', 10, 2 ); -
/** * เพิ่มคลาสลูกค้าเป้าหมายในย่อหน้าแรก */function first_paragraph( $content ) { return preg_replace( '/<p([^>]+)?>/', '<p$1 class="lead">', $เนื้อหา, 1 ); }add_filter( 'the_content', 'first_paragraph' );
เพิ่มคลาส lead
ในย่อหน้าแรกใน the_content
/** * ไม่รวมประเภทโพสต์ที่กำหนดเองจากการค้นหา */function excludePages( $query ) {if ( $query->is_search ) { $query->set( 'post_type', 'post' ); } ส่งคืน $ แบบสอบถาม; }add_filter( 'pre_get_posts','excludePages' );
/** * ลบสตริงการสืบค้นออกจากทรัพยากรคงที่ */ function remove_cssjs_ver( $src ) { if ( strpos( $src, '?ver=' ) ) $src = Remove_query_arg( 'ver', $src ); กลับ $src; }add_filter( 'style_loader_src', 'remove_cssjs_ver', 10, 2 );add_filter( 'script_loader_src', 'remove_cssjs_ver', 10, 2 );
/** * แก้ไข jQuery */function modified_jquery() { wp_deregister_script( 'jquery' ); wp_register_script( 'jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js', false, '3.2.1' ); wp_enqueue_script( 'jquery' ); }ถ้า (!is_admin()) add_action('wp_enqueue_scripts', 'modify_jquery');
/** * ปิดการใช้งานฟิลด์เว็บไซต์จากแบบฟอร์มแสดงความคิดเห็น */functiondisable_website_field( $field ) { ถ้า( isset($field['url']) ) { ไม่ได้ตั้งค่า( $field['url'] ); } ส่งคืนฟิลด์ $; }add_filter('comment_form_default_fields', 'disable_website_field');
/** * ปิดการใช้งาน JSON REST API */add_filter('json_enabled', '__return_false');add_filter('json_jsonp_enabled', '__return_false');
/** * เปลี่ยนประเภทการโพสต์ */function switch_post_type ( $old_post_type, $new_post_type ) { global $wpdb; // เรียกใช้แบบสอบถามการอัปเดต $wpdb->update( $wpdb->posts, // Set array( 'post_type' => $new_post_type), // Where array( 'post_type' => $old_post_type ) - -
/** * PHP Logger */function php_logger( $data ) { $output = $data; ถ้า ( is_array( $output ) ) $output = implode( ',', $output ); // พิมพ์ผลลัพธ์ลงในคอนโซล JavaScript echo "<script>console.log( 'PHP LOG: " . $output . "' );</script>"; -
/** * แสดงแถบที่สองใน TinyMCE เสมอ */function show_tinymce_toolbar( $in ) { $in['wordpress_adv_hidden'] = false; ส่งคืน $ ใน; }add_filter( 'tiny_mce_before_init', 'show_tinymce_toolbar' );
/** * โคลนบทบาทผู้ใช้ผู้ดูแลระบบ */function clone_admin_role() { global $wp_roles; ถ้า ( ! isset( $wp_roles ) ) $wp_roles = ใหม่ WP_Roles(); $adm = $wp_roles->get_role( 'ผู้ดูแลระบบ' ); // เพิ่มบทบาท "ไคลเอนต์" ใหม่พร้อมความสามารถของผู้ดูแลระบบทั้งหมด $wp_roles->add_role( 'client', 'Client', $adm->capabilities ); }add_action( 'init', 'clone_admin_role' );/** * ระบุว่ารายการเมนูผู้ดูแลระบบใดที่จะมองเห็นได้สำหรับผู้ใช้ที่มีบทบาท "ไคลเอนต์" */function remove_dashboard_menus() { if ( current_user_can( 'client' ) ) { // ซ่อน การอัปเดตภายใต้เมนูแดชบอร์ด Remove_submenu_page( 'index.php', 'update-core.php' ); // ซ่อนความคิดเห็น Remove_menu_page( 'edit-comments.php' ); // ซ่อนปลั๊กอิน Remove_menu_page( 'plugins.php' ); // ซ่อนธีม เครื่องมือปรับแต่ง และวิดเจ็ตภายใต้เมนูลักษณะที่ปรากฏ Remove_submenu_page( 'themes.php', 'themes.php' ); Remove_submenu_page( 'themes.php', 'customize.php?return=' . urlencode( $_SERVER['REQUEST_URI'] ) ); Remove_submenu_page( 'themes.php', 'widgets.php' ); // ซ่อนเครื่องมือ Remove_menu_page( 'tools.php' ); // ซ่อนการตั้งค่าทั่วไป Remove_menu_page( 'options-general.php' ); - }add_action( 'admin_menu', 'remove_dashboard_menus' );
/** * ระบุว่าผู้ใช้สามารถดูรายการเมนูผู้ดูแลระบบตามที่อยู่อีเมล */function remove_dashboard_menus() { $user_data = get_userdata( get_current_user_id() ); $user_email = isset( $user_data->user_email ) ? $user_data->user_email : ''; if ( ! strpos( $user_email, '@yourcompany.com' ) ) { // ซ่อนการอัปเดตภายใต้เมนูแดชบอร์ด Remove_submenu_page( 'index.php', 'update-core.php' ); // ซ่อนความคิดเห็น Remove_menu_page( 'edit-comments.php' ); // ซ่อนปลั๊กอิน Remove_menu_page( 'plugins.php' ); // ซ่อนธีม เครื่องมือปรับแต่ง และวิดเจ็ตภายใต้เมนูลักษณะที่ปรากฏ Remove_submenu_page( 'themes.php', 'themes.php' ); Remove_submenu_page( 'themes.php', 'customize.php?return=' . urlencode( $_SERVER['REQUEST_URI'] ) ); Remove_submenu_page( 'themes.php', 'widgets.php' ); // ซ่อนเครื่องมือ Remove_menu_page( 'tools.php' ); // ซ่อนการตั้งค่าทั่วไป Remove_menu_page( 'options-general.php' ); - }add_action( 'admin_menu', 'remove_dashboard_menus' );
/** * เรียงลำดับเมนูผู้ดูแลระบบใหม่ */function custom_menu_order( $menu_ord ) { if ( ! $menu_ord ) { return true; } ส่งคืนอาร์เรย์ ( 'index.php', 'separator1', 'edit.php?post_type=page', 'edit.php', 'edit.php?post_type=[your_post_type_slug]', 'upload.php', 'edit-comments.php', 'separator2', 'themes.php', 'plugins.php', 'users.php', 'เครื่องมือ .php', 'ตัวเลือก-general.php' - - }add_filter( 'custom_menu_order', 'custom_menu_order' );add_filter( 'menu_order', 'custom_menu_order' );
/** * แยกหมวดหมู่ออกจากลูป WordPress ทั้งหมด */add_action( 'pre_get_posts', function( $query ) { // โทรกลับโดยไม่ระบุชื่อ $wp_query ทั่วโลก; // ID หมวดหมู่ฮาร์ดโค้ด แต่สามารถเป็นไดนามิกได้: esc_attr(get_option('your-cat-id')); $excluded_cat_id = 25; // เพิ่มรหัสหมวดหมู่ที่มีอยู่ หลีกเลี่ยงการเขียนทับ $cat[] = $query->get( 'cat' ); $cat[] = "-" . $excluded_cat_id; $query->set( 'cat', $cat ); - -
add_action('wp_default_scripts', function ($scripts) { if (!empty($scripts->registered['jquery'])) { $scripts->ลงทะเบียน['jquery']->deps = array_diff($scripts-> ลงทะเบียนแล้ว['jquery']->deps, ['jquery-migrate']); - -
Lighthouse และเครื่องมือวิเคราะห์ประสิทธิภาพที่คล้ายกันมักจะบ่นเกี่ยวกับสคริปต์ (และสไตล์การบล็อกการแสดงผล) แคชสั้น TTL ฯลฯ สคริปต์และสไตล์เหล่านี้ส่วนใหญ่มาจากแหล่งบุคคลที่สามซึ่งเราไม่สามารถควบคุมได้ - เครื่องจัดการแท็กและการวิเคราะห์ของ Google, Facebook Pixel ตัวติดตามอื่นๆ และสคริปต์แชท ฯลฯ อย่างไรก็ตาม เราสามารถโหลดได้เฉพาะเมื่อผู้ใช้จริงโต้ตอบกับเพจเท่านั้น ซึ่งช่วยลดการวัด Time To Interactive ลงอย่างมาก และให้คะแนนผลลัพธ์ประสิทธิภาพที่สูงกว่ามาก
ขึ้นอยู่กับว่าคุณต้องการให้สคริปต์บุคคลที่สามเหล่านี้อยู่ที่ไหน คุณสามารถใช้การกระทำ wp_footer
เพื่อพิมพ์โค้ดในส่วนท้าย หรือวางไว้ในสคริปต์ app.js
หลักของคุณ ซึ่งในทางกลับกัน จะถูกจัดคิวในการดำเนินการ wp_enqueue_scripts
<script>var ยิง = false; window.addEventListener('scroll', () => { if (ยิง === false) { fired = true; setTimeout(() => { // Marketing scripts go here. }, 1000) // 1000ms หรือ 1s ทำงานได้ดี แต่คุณสามารถปรับการหมดเวลานี้ได้ }});</script>