atom_enclosure

函数
atom_enclosure ( No parameters )
定义位置
相关方法
do_encloserss_enclosuredo_all_enclosuresget_enclosedupdate_core
引入
2.2.0
弃用
-

atom_enclosure: 这个函数用来给一个RSS feed项目添加Atom外壳。它需要两个参数:第一个是围栏的URL,第二个是围栏的大小(字节)。

显示当前文章的atom外壳。

使用全局$post来检查该文章是否需要密码,以及用户是否有该文章的密码。如果没有,那么在显示之前会返回。

还使用函数get_post_custom()来获取文章的’enclosure’元数据字段,并解析该值以显示附件。围栏由带有URI和其他属性的HTML链接标签组成。

function atom_enclosure() {
	if ( post_password_required() ) {
		return;
	}

	foreach ( (array) get_post_custom() as $key => $val ) {
		if ( 'enclosure' === $key ) {
			foreach ( (array) $val as $enc ) {
				$enclosure = explode( "n", $enc );

				$url    = '';
				$type   = '';
				$length = 0;

				$mimes = get_allowed_mime_types();

				// Parse URL.
				if ( isset( $enclosure[0] ) && is_string( $enclosure[0] ) ) {
					$url = trim( $enclosure[0] );
				}

				// Parse length and type.
				for ( $i = 1; $i <= 2; $i++ ) {
					if ( isset( $enclosure[ $i ] ) ) {
						if ( is_numeric( $enclosure[ $i ] ) ) {
							$length = trim( $enclosure[ $i ] );
						} elseif ( in_array( $enclosure[ $i ], $mimes, true ) ) {
							$type = trim( $enclosure[ $i ] );
						}
					}
				}

				$html_link_tag = sprintf(
					"<link href="%s" rel="enclosure" length="%d" type="%s" />n",
					esc_url( $url ),
					esc_attr( $length ),
					esc_attr( $type )
				);

				/**
				 * Filters the atom enclosure HTML link tag for the current post.
				 *
				 * @since 2.2.0
				 *
				 * @param string $html_link_tag The HTML link tag with a URI and other attributes.
				 */
				echo apply_filters( 'atom_enclosure', $html_link_tag );
			}
		}
	}
}

常见问题

FAQs
查看更多 >