我在Wordpress中使用此功能:
function wpstudio_doctype() {
$content = '<!DOCTYPE html>' . "\n";
$content .= '<html ' . language_attributes() . '>';
echo apply_filters( 'wpstudio_doctype', $content );
}
问题是该函数在$content
标记上方显示<!DOCTYPE html>
,而不是在HTML
标记内添加字符串。
我在这里做错了什么?
答案 0 :(得分:6)
language_attributes()
不会返回属性,它会回复它们。
// last line of language_attributes()
echo apply_filters( 'language_attributes', $output );
这意味着它将在您的字符串汇编之前显示。您需要使用输出缓冲捕获此值,然后将其附加到字符串中。
// Not sure if the output buffering conflicts with anything else in WordPress
function wpstudio_doctype() {
ob_start();
language_attributes();
$language_attributes = ob_get_clean();
$content = '<!DOCTYPE html>' . "\n";
$content .= '<html ' . $language_attributes . '>';
echo apply_filters( 'wpstudio_doctype', $content );
}
答案 1 :(得分:0)
代替输出缓冲,只需在ECHO语句中使用get_language_attributes()
。在这种情况下:
function wpstudio_doctype() {
$content = '<!DOCTYPE html>' . "\n";
$content .= '<html ' . get_language_attributes() . '>';
echo apply_filters( 'wpstudio_doctype', $content );
}