确实没有提供足够的信息,但从您提供的代码中,我看到:
所使用的过滤器属于插件,用于需要为添加到词汇表中的任何匹配术语解析和格式化动态内容的位置,可以选择为术语添加工具提示。您正在传递一个静态字符串"Label: "
对此下有一些选项CM Tooltip Glossary > Tooltip - Content > Clean
tooltip text? 和CM Tooltip Glossary > Tooltip - Content > Avoid parsing
protected tags?. 您是否尝试过切换它们以查看它们是否提供您想要的输出由于这似乎是解析过滤器的格式问题,因此消除它可能解释错误的任何区域可能会有所帮助。例如,构造字符串本身并输出,而不是在不同的行上插入和退出PHP。您可以使用the_title
在您的apply_filters
呼叫您很可能希望解析器不仅仅检查静态字符串\'Label: \'
也意味着在解析中包含标题:
<?php echo ! generate_show_title() ?: apply_filters( \'cm_tooltip_parse\', the_title( \'<p>Label: \', \'</p>\', false ), true ); ?>
<因为示例代码是在静态字符串之后添加换行符
\'Label: \'
, 那就意味着使用上述代码输出将在一行中,如您所愿:
<p>Label: $title</p>
. 解析器中的换行符仍然存在,并在此之后输出。您可以将输出包装为
trim()
我猜:
<?php
/**
* Trims the following from output string:
*
* \' \' : Whitespace
* \'\\t\' : tab
* \'\\n\' : newline
* \'\\r\' : carriage return
* \'\\0\' : NUL-byte
* \'\\x0B\': vertical tab
*/
echo ! generate_show_title() ?: trim( apply_filters( \'cm_tooltip_parse\', the_title( \'<p>Label: \', \'</p>\', false ), true ), " \\t\\n\\r\\0\\x0B" );
<人力资源>
Edit:我从提供的代码片段中看到的其余问题看起来可能是由无效的HTML引起的以这个基本示例为例:
<p>
<p>something</p>
</p>
第一个
<p>
当打开标记遇到下一个时,它将在浏览器中自动关闭
<p>
围绕“某物”的开始标记。因此,在这个基本示例中,浏览器最终会呈现如下内容:
<p>
</p>
<p>something</p>
<p>
</p>
我想尝试的是改变你周围的环境
<p>
标记为
<div>
首先,您的标签/标题通常应该是某种标题标签。我不知道整页的标记,所以我很难说,但我还是同意
<h1>
. 这个
<h1>
元素应该包含页面的主要“主题”,因为这是人们通常填写的内容
the_title
- 使用它可能是正确的:
<div class="page-details-with-tooltip">
<?php echo ! generate_show_title() ?: trim( apply_filters( \'cm_tooltip_parse\', the_title( \'<h1>Label: \', \'</h1>\', false ), true ), " \\t\\n\\r\\0\\x0B" ); ?>
<p>
Published On: <time datetime="<?php echo esc_attr( get_the_date( \'c\' ) ); ?>"><?php echo esc_html( get_the_date() ); ?></time></br>
<?php if ( get_field(\'date_updated\') ) : ?>
Updated On: <?php the_field(\'date_updated\'); ?>
<?php endif; ?>
</p>
</div>
这里我们使用
<div>
表示可能包含其他块的内容块。在本例中,标题有一个heading元素(
<h1>
) 段落内容是用元信息进一步描述主题细节的随附文本,我们将其包装在
<p>
标签标题元素(h1-h6)称为
heading content, 我想这名字很贴切。
所以你可能想知道为什么<time>
元素在输出中没有断开到新行,即使在检查时看到它显示在新行上。那是因为这是phrasing content, 它基本上定义了标记内部的文本及其可能包含的任何标记。这个<br>
是一个换行符,表示段落从下一行的开头开始,有点像回车(如\\r
我们在上面脱衣)。仅当段落中的内容在视觉上很重要时,才应使用此选项,而不是用于段落之间的间距。一般来说,我尽量避免<br>
\'在任何标记中都是,但对于这种情况,我们的输出只是文本,在这里使用换行符是正确的。这个<br>
在您在Updated On: $date
零件在这里使用不正确。我假设这是因为你有内容可以跟随它而使用的,并且希望下面有足够的空间来分隔下一段。这应该通过CSS可视化完成。我想我们确定了您正在使用GeneratePress主题,并查看<p>
看起来这些元素的底部有一个边距,以帮助保持统一vertical rhythm 在您的网站上。既然已经定义了这个标记和样式,您可能不需要应用任何额外的CSS来调整它的外观,因为它应该与站点的其他部分相匹配。
多组phrasing content 是什么让paragraph! 纯文本也是phrasing content. 要深入了解内容模型W3C HTML5 spec 充满了你需要的和不需要知道的所有信息。不过,重要的一点是,如果我们要通过html验证器运行它,它将作为适当的标记传递,浏览器现在可以按预期显示它。
返回到<div>
我们过去经常更换<p>
这是在您的初始代码中-您可以看到我添加了page-details-with-tooltip
作为该元素的类名。如果您认为没有必要,可以删除它,但我添加了它,以便于在该特定区域的上下文中应用CSS样式,以防您想要对该区域进行任何可视化更改。还有其他(通常更好)方法来编写选择器,以便仅在WordPress中的特定上下文中引用该区域,您可以在question #275909.
我希望这能帮助您解决问题,并让您了解可能发生的一些问题,更重要的是,这些问题为什么会发生!如果不在视觉上看到问题并能够在浏览器中检查它,就很难对这种特定的东西给出明确的答案,因为有许多因素可能会导致空白-从代码到标记,再到CSS。尽管如此,我还是能够得到一些奇怪的间隔输出。在此更改之后。我仍然建议再次检查上面的#4插件设置,因为如果他们提供了一个选项来启用/禁用清理过滤器中正在解析/呈现的输出,只是为了将其从检查表中删除,那么他们可能会有一些神奇的东西!