函数文档

_wp_filter_font_directory()

💡 云策文档标注

概述

_wp_filter_font_directory() 是一个用于 'upload_dir' 过滤器的回调函数,主要用于内部处理字体目录路径,不建议插件和主题直接使用。

关键要点

  • 此函数为内部使用,插件和主题应使用 wp_get_font_dir() 替代。
  • 函数接收一个字体目录数组参数,返回修改后的目录数组,包含路径、URL等字段。
  • 通过 apply_filters('font_dir', $font_dir) 钩子允许开发者过滤字体目录数据。
  • 使用 doing_filter('font_dir') 避免无限循环。

代码示例

function _wp_filter_font_directory( $font_dir ) {
	if ( doing_filter( 'font_dir' ) ) {
		// Avoid an infinite loop.
		return $font_dir;
	}

	$font_dir = array(
		'path'    => untrailingslashit( $font_dir['basedir'] ) . '/fonts',
		'url'     => untrailingslashit( $font_dir['baseurl'] ) . '/fonts',
		'subdir'  => '',
		'basedir' => untrailingslashit( $font_dir['basedir'] ) . '/fonts',
		'baseurl' => untrailingslashit( $font_dir['baseurl'] ) . '/fonts',
		'error'   => false,
	);

	/**
	 * Filters the fonts directory data.
	 *
	 * This filter allows developers to modify the fonts directory data.
	 *
	 * @since 6.5.0
	 *
	 * @param array $font_dir {
	 *     Array of information about the font upload directory.
	 *
	 *     @type string       $path    Base directory and subdirectory or full path to the fonts upload directory.
	 *     @type string       $url     Base URL and subdirectory or absolute URL to the fonts upload directory.
	 *     @type string       $subdir  Subdirectory
	 *     @type string       $basedir Path without subdir.
	 *     @type string       $baseurl URL path without subdir.
	 *     @type string|false $error   False or error message.
	 * }
	 */
	return apply_filters( 'font_dir', $font_dir );
}

注意事项

  • 此函数从 WordPress 6.5.0 版本引入。
  • 相关函数包括 untrailingslashit()、doing_filter() 和 apply_filters()。

📄 原文内容

A callback function for use in the ‘upload_dir’ filter.

Description

This function is intended for internal use only and should not be used by plugins and themes.
Use wp_get_font_dir() instead.

Parameters

$font_dirstringrequired
The font directory.

Return

string The modified font directory.

Source

function _wp_filter_font_directory( $font_dir ) {
	if ( doing_filter( 'font_dir' ) ) {
		// Avoid an infinite loop.
		return $font_dir;
	}

	$font_dir = array(
		'path'    => untrailingslashit( $font_dir['basedir'] ) . '/fonts',
		'url'     => untrailingslashit( $font_dir['baseurl'] ) . '/fonts',
		'subdir'  => '',
		'basedir' => untrailingslashit( $font_dir['basedir'] ) . '/fonts',
		'baseurl' => untrailingslashit( $font_dir['baseurl'] ) . '/fonts',
		'error'   => false,
	);

	/**
	 * Filters the fonts directory data.
	 *
	 * This filter allows developers to modify the fonts directory data.
	 *
	 * @since 6.5.0
	 *
	 * @param array $font_dir {
	 *     Array of information about the font upload directory.
	 *
	 *     @type string       $path    Base directory and subdirectory or full path to the fonts upload directory.
	 *     @type string       $url     Base URL and subdirectory or absolute URL to the fonts upload directory.
	 *     @type string       $subdir  Subdirectory
	 *     @type string       $basedir Path without subdir.
	 *     @type string       $baseurl URL path without subdir.
	 *     @type string|false $error   False or error message.
	 * }
	 */
	return apply_filters( 'font_dir', $font_dir );
}

Hooks

apply_filters( ‘font_dir’, array $font_dir )

Filters the fonts directory data.

Changelog

Version Description
6.5.0 Introduced.