
wp_mime_type_icon ( $mime = 0 )
wp_mime_type_icon: 这个函数返回一个给定文件类型的图标的URL。它用于在媒体库和WordPress管理的其他区域显示文件图标。
检索一个MIME类型或附件的图标。
function wp_mime_type_icon( $mime = 0 ) { if ( ! is_numeric( $mime ) ) { $icon = wp_cache_get( "mime_type_icon_$mime" ); } $post_id = 0; if ( empty( $icon ) ) { $post_mimes = array(); if ( is_numeric( $mime ) ) { $mime = (int) $mime; $post = get_post( $mime ); if ( $post ) { $post_id = (int) $post->ID; $file = get_attached_file( $post_id ); $ext = preg_replace( '/^.+?.([^.]+)$/', '$1', $file ); if ( ! empty( $ext ) ) { $post_mimes[] = $ext; $ext_type = wp_ext2type( $ext ); if ( $ext_type ) { $post_mimes[] = $ext_type; } } $mime = $post->post_mime_type; } else { $mime = 0; } } else { $post_mimes[] = $mime; } $icon_files = wp_cache_get( 'icon_files' ); if ( ! is_array( $icon_files ) ) { /** * Filters the icon directory path. * * @since 2.0.0 * * @param string $path Icon directory absolute path. */ $icon_dir = apply_filters( 'icon_dir', ABSPATH . WPINC . '/images/media' ); /** * Filters the icon directory URI. * * @since 2.0.0 * * @param string $uri Icon directory URI. */ $icon_dir_uri = apply_filters( 'icon_dir_uri', includes_url( 'images/media' ) ); /** * Filters the array of icon directory URIs. * * @since 2.5.0 * * @param string[] $uris Array of icon directory URIs keyed by directory absolute path. */ $dirs = apply_filters( 'icon_dirs', array( $icon_dir => $icon_dir_uri ) ); $icon_files = array(); while ( $dirs ) { $keys = array_keys( $dirs ); $dir = array_shift( $keys ); $uri = array_shift( $dirs ); $dh = opendir( $dir ); if ( $dh ) { while ( false !== $file = readdir( $dh ) ) { $file = wp_basename( $file ); if ( '.' === substr( $file, 0, 1 ) ) { continue; } $ext = strtolower( substr( $file, -4 ) ); if ( ! in_array( $ext, array( '.png', '.gif', '.jpg' ), true ) ) { if ( is_dir( "$dir/$file" ) ) { $dirs[ "$dir/$file" ] = "$uri/$file"; } continue; } $icon_files[ "$dir/$file" ] = "$uri/$file"; } closedir( $dh ); } } wp_cache_add( 'icon_files', $icon_files, 'default', 600 ); } $types = array(); // Icon wp_basename - extension = MIME wildcard. foreach ( $icon_files as $file => $uri ) { $types[ preg_replace( '/^([^.]*).*$/', '$1', wp_basename( $file ) ) ] =& $icon_files[ $file ]; } if ( ! empty( $mime ) ) { $post_mimes[] = substr( $mime, 0, strpos( $mime, '/' ) ); $post_mimes[] = substr( $mime, strpos( $mime, '/' ) + 1 ); $post_mimes[] = str_replace( '/', '_', $mime ); } $matches = wp_match_mime_types( array_keys( $types ), $post_mimes ); $matches['default'] = array( 'default' ); foreach ( $matches as $match => $wilds ) { foreach ( $wilds as $wild ) { if ( ! isset( $types[ $wild ] ) ) { continue; } $icon = $types[ $wild ]; if ( ! is_numeric( $mime ) ) { wp_cache_add( "mime_type_icon_$mime", $icon ); } break 2; } } } /** * Filters the mime type icon. * * @since 2.1.0 * * @param string $icon Path to the mime type icon. * @param string $mime Mime type. * @param int $post_id Attachment ID. Will equal 0 if the function passed * the mime type. */ return apply_filters( 'wp_mime_type_icon', $icon, $mime, $post_id ); }
钩子函数和过滤器函数的主要区别是它们的行为方式。钩子函数是在特定的时间点被调用的函数,它们可以执行各种任务,但通常不会返回值。而过滤器函数则是对特定的值进行过滤和修改的函数,它们会接收一个值作为输入,然后返回一个新的值作为输出。
钩子函数(Hooks)和过滤器函数(Filters)是用于修改和扩展WordPress(和其他编程环境)功能的核心概念。它们的主要区别在于它们的用途和工作方式。
1. 钩子函数(Hooks):
2. 过滤器函数(Filters):
主要区别在于它们的目的和使用场景:
重要的是要理解钩子函数和过滤器函数在编程环境中的作用,以便正确使用它们来实现自定义功能和修改数据。
apply_filters
函数用于调用一个钩子上的所有过滤器函数。它的基本用法如下:
$value = apply_filters( 'hook_name', $value, $var1, $var2, ... );
其中:
'hook_name
' 是你要应用过滤器函数的钩子名称。
$value
是你要传递给过滤器函数的值。
$var1, $var2, …
是你要传递给过滤器函数的其他参数。
常量的命名有一些约定和规则。首先,常量的名称应该全部大写,用下划线分隔单词。例如,MY_CONSTANT_NAME
。其次,常量的名称应该是有意义的,能够清晰地描述常量的用途或值。最后,避免使用已经被PHP或WordPress定义的常量名称,以避免冲突。
在WordPress中,常量的命名规则和约定如下:
ABSPATH
。WP_DEBUG
.WP_
,例如: WP_CONTENT_DIR
。例如,以下是符合WordPress常量命名规则的示例:
define( 'WP_DEBUG', true ); define( 'WP_CONTENT_DIR', '/var/www/html/wp-content' ); define( 'MY_CUSTOM_CONSTANT', 'Hello World' );
遵循这些命名规则和约定可以帮助保持代码的一致性和可读性,使得WordPress主题或插件更易于理解、维护和扩展。
要使用WordPress REST API,可以按照以下步骤进行操作:
这些是使用WordPress REST API的基本步骤。你可以根据具体需求进行深入学习和实践,探索更多可用的终点和功能。对于详细的API文档和参考,请查阅WordPress官方文档或REST API官方手册。
在WordPress中,钩子函数可以在以下几个地方使用:
add_filter()
`函数注册在特定过滤器(filter hooks)上执行的钩子函数。add_action()
`函数在特定的动作点上添加自定义内容,或使用` add_filter()
`函数修改主题函数的输出。functions.php
`的文件,用于添加自定义功能和修改WordPress行为。该文件中可以使用钩子函数来注册特定的动作点和过滤器,并添加相应的钩子函数来处理这些事件。do_action()
`或` apply_filters()
`函数调用,然后在需要的地方注册相应的钩子函数。总结起来,WordPress中的钩子函数可以在插件、主题、自定义功能文件以及WordPress核心文件中使用,用于注册和处理特定的WordPress事件或动作。这允许开发者在这些地方插入自定义逻辑,以实现个性化的功能和修改WordPress的行为。
wp_insert_post()
函数用于插入新的文章。你需要传递一个关联数组,包含文章的各项参数,如标题、内容、分类等。例如:
$post_data = array( 'post_title' => '新的文章', 'post_content' => '这是一篇新的文章。', 'post_status' => 'publish', // 设置为 'publish' 以立即发布文章 'post_type' => 'post', // 也可以设置为 'page' 或其他自定义的文章类型 ); $post_id = wp_insert_post($post_data);
如果你想要插入更复杂的文章,例如包含多个分类或标签,你可以在 $post_data
数组中添加更多的键值对。