php - 回调函数中php打开和关闭标签的奇怪用法
问题描述
这是一个 TwentyTwelve WordPress 主题,实际上是 WordPress 本身作为学习主题开发的好材料提出的。
此函数作为回调发送。但问题是代码中 PHP 打开和关闭标签的奇怪用法:
我已经用这个评论标记了它们:/* <------ LIKE THIS */
function twentytwelve_header_style() {
$text_color = get_header_textcolor();
if ( $text_color == get_theme_support( 'custom-header', 'default-text-color' ) ) {
return;
}
?> /* <------ LIKE THIS */
<style type="text/css" id="twentytwelve-header-css">
<?php
if ( ! display_header_text() ) :
?>
.site-title,
.site-description {
position: absolute;
clip: rect(1px 1px 1px 1px); /* IE7 */
clip: rect(1px, 1px, 1px, 1px);
}
<?php
else :
?>
.site-header h1 a,
.site-header h2 {
color: #<?php echo $text_color; ?>;
}
<?php endif; ?>
</style>
<?php /* <------ LIKE THIS */
}
为什么以这种方式使用它们?
解决方案
这不是一个干净的代码,但它并不像你想象的那样奇怪,当函数直接打印 html 时,php 标签是关闭的,你可以像这样更改你的代码:
<?php // I think that your code miss opening tag or maybe opening tag is before your snippet
function twentytwelve_header_style() {
$text_color = get_header_textcolor();
if ( $text_color == get_theme_support( 'custom-header', 'default-text-color' ) ) {
return;
}
echo '<style type="text/css" id="twentytwelve-header-css">'; /* <------ ECHO AND NO CLOSING PHP TAG */
if ( ! display_header_text() ) :
echo '.site-title, .site-description { position: absolute; clip: rect(1px 1px 1px 1px); /* IE7 */ clip: rect(1px, 1px, 1px, 1px); }'; /* <------ ECHO AND NO CLOSING PHP TAG */
else :
echo '.site-header h1 a, .site-header h2 { color: #<?php echo $text_color; }'; /* <------ ECHO AND NO CLOSING PHP TAG */
endif;
echo '</style>'; /* <------ ECHO AND NO CLOSING PHP TAG */
推荐阅读
- c# - 如何将页面加载到从另一个 wpf 页面开始的窗口中的框架中?
- macos - Unix 帮助将第 2 行和第 3 行移动到第 1 行的中间
- java - 擦除:以下函数是否会覆盖 android 上的内存?
- python - 在模型 Doc2Vec 中获取向量的标签
- c - How to write correctly a file in C?
- node.js - TypeScript 等待 promise.all 并返回结果
- wxpython - 如何设置 wx.TextEntryDialog 按钮的标签
- java - Spring Boot公共库项目中的单元测试
- java - 似乎无法让 Eclipse IDE 在我的 Mac 上找到 geckodriver
- c# - 如何从 CSV 文件中获取特定列的索引 ID