Shopping Cart

購物車內沒有任何商品。

加入 WordPress 學習交流社團

為什麼要加入本社團?好處如下:

  1. 問題解答
  2. 免費教學
  3. 好用工具推薦
  4. 最新資訊
  5. 秘訣分享
  6. 資安通報
  7. 100+參考指引
立即加入
快速、安全及穩定的主機空間能提升網站 SEO 排名與使用者體驗

如何在 WordPress 新增程式碼片段?

什麼是程式碼片段?

程式碼片段的用途是修改網站功能、調整網站外觀、新增追蹤碼/驗證碼。例如:允許上傳 SVG 檔案、停用區塊編輯器、停用 WordPress 自動更新、向 Google Search Console 驗證網站擁有權等等。

7 個常見的程式碼片段

允許上傳 SVG 檔案
/**
 * Allow SVG uploads for administrator users.
 *
 * @param array $upload_mimes Allowed mime types.
 *
 * @return mixed
 */
add_filter(
	'upload_mimes',
	function ( $upload_mimes ) {
		// By default, only administrator users are allowed to add SVGs.
		// To enable more user types edit or comment the lines below but beware of
		// the security risks if you allow any user to upload SVG files.
		if ( ! current_user_can( 'administrator' ) ) {
			return $upload_mimes;
		}
		$upload_mimes['svg']  = 'image/svg+xml';
		$upload_mimes['svgz'] = 'image/svg+xml';
		return $upload_mimes;
	}
);
/**
 * Add SVG files mime check.
 *
 * @param array        $wp_check_filetype_and_ext Values for the extension, mime type, and corrected filename.
 * @param string       $file Full path to the file.
 * @param string       $filename The name of the file (may differ from $file due to $file being in a tmp directory).
 * @param string[]     $mimes Array of mime types keyed by their file extension regex.
 * @param string|false $real_mime The actual mime type or false if the type cannot be determined.
 */
add_filter(
	'wp_check_filetype_and_ext',
	function ( $wp_check_filetype_and_ext, $file, $filename, $mimes, $real_mime ) {
		if ( ! $wp_check_filetype_and_ext['type'] ) {
			$check_filetype  = wp_check_filetype( $filename, $mimes );
			$ext             = $check_filetype['ext'];
			$type            = $check_filetype['type'];
			$proper_filename = $filename;
			if ( $type && 0 === strpos( $type, 'image/' ) && 'svg' !== $ext ) {
				$ext  = false;
				$type = false;
			}
			$wp_check_filetype_and_ext = compact( 'ext', 'type', 'proper_filename' );
		}
		return $wp_check_filetype_and_ext;
	},
	10,
	5
);
停用區塊編輯器
add_filter('gutenberg_can_edit_post', '__return_false', 5);
add_filter('use_block_editor_for_post', '__return_false', 5);
停用 WordPress 版本號碼
add_filter('the_generator', '__return_empty_string');
停用區塊小工具畫面
add_filter( 'use_widgets_block_editor', '__return_false' );
停用 WordPress 自動更新
// Disable core auto-updates
add_filter( 'auto_update_core', '__return_false' );
// Disable auto-updates for plugins.
add_filter( 'auto_update_plugin', '__return_false' );
// Disable auto-updates for themes.
add_filter( 'auto_update_theme', '__return_false' );
停用附件檔案頁面
add_action(
	'template_redirect',
	function () {
		global $post;
		if ( ! is_attachment() || ! isset( $post->post_parent ) || ! is_numeric( $post->post_parent ) ) {
			return;
		}
		// Does the attachment have a parent post?
		// If the post is trashed, fallback to redirect to homepage.
		if ( 0 !== $post->post_parent && 'trash' !== get_post_status( $post->post_parent ) ) {
			// Redirect to the attachment parent.
			wp_safe_redirect( get_permalink( $post->post_parent ), 301 );
		} else {
			// For attachment without a parent redirect to homepage.
			wp_safe_redirect( get_bloginfo( 'wpurl' ), 302 );
		}
		exit;
	},
	1
);
完全停用留言
add_action('admin_init', function () {
    // Redirect any user trying to access comments page
    global $pagenow;
    
    if ($pagenow === 'edit-comments.php') {
        wp_safe_redirect(admin_url());
        exit;
    }
    // Remove comments metabox from dashboard
    remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');
    // Disable support for comments and trackbacks in post types
    foreach (get_post_types() as $post_type) {
        if (post_type_supports($post_type, 'comments')) {
            remove_post_type_support($post_type, 'comments');
            remove_post_type_support($post_type, 'trackbacks');
        }
    }
});
// Close comments on the front-end
add_filter('comments_open', '__return_false', 20, 2);
add_filter('pings_open', '__return_false', 20, 2);
// Hide existing comments
add_filter('comments_array', '__return_empty_array', 10, 2);
// Remove comments page in menu
add_action('admin_menu', function () {
    remove_menu_page('edit-comments.php');
});
// Remove comments links from admin bar
add_action('admin_bar_menu', function () {
    remove_action('admin_bar_menu', 'wp_admin_bar_comments_menu', 60);
}, 0);

以上程式碼片段來源均為 WPCode Snippets Library

如何新增程式碼片段?

新增程式碼片段的方法很多,我個人推薦 FluentSnippets 這款外掛,理由是安全性高、速度快、方便管理,只需 2 個步驟即可完成。

步驟
安裝 FluentSnippets 外掛

前往 [外掛]→[安裝外掛] 後,搜尋 FluentSnippets,接著點選 [立即安裝] 按鈕。安裝完成後,再點選 [啟用] 按鈕。

步驟
新增程式碼片段

在 WordPress 後台左側找到 FluentSnippets 後,點選 New Snippet,然後按照實際需求輸入以下資料:

  1. 片段類型:PHP、PHP+HTML、CSS、JS
  2. 片段名稱
  3. 片段說明 (選填)
  4. 優先順序 (選填)
  5. 群組或標籤程式碼片段 (選填)
  6. 在哪裡執行程式碼片段:前端、後台、全站
  7. 條件式邏輯 (選填)

當你完成設定後,點選 Create Snippet 按鈕便能新增程式碼片段。

3 個實用的程式碼片段庫

WPCode Snippets Library
訣竅

新增 WordPress 網站的功能我傾向優先在主機端處理,程式碼片段次之,最後才是外掛。

加入 Facebook 社團
瀏覽次數: 84
全方位學 Wordpress – 從架站到整合行銷 2.0
  • 講師 24 小時內親自回覆問題,安心有保障
  • 優先推薦免費工具,幫你省荷包
  • 只推自己正在用的付費工具,不會為了傭金讓你繞遠路,真實誠懇
  • 注重效能,畢竟這會影響使用者體驗與 SEO 排名
  • 數 10 種學習資料,非常豐富
  • N 個獨家資源
  • 定期分享最新資訊
  • 300+參考指引
  • 內容 & 範本資料庫 (獨創)
  • AI 驅動,有效提高工作效率
喜歡請分享!
開啟目錄