p-tag 中封闭的 php 元素在 p 之外,这怎么可能?

Enclosured php element in p-tag is ouside p, how is this possible?

我在 wordpress 中使用高级自定义字段并有这行代码:

<p class="small"><?php the_field('somefield', 'options'); ?></p>

并且在浏览器中打印成这样:

<p class="small></p>
<p>the content of somefield</p>

为什么会发生这种情况,我该如何解决?

这是因为您在内部使用段落,您可以使用下面的修复方法修复它,如果您在此字段中插入 <p>,请使用 span 或其他它会如果您使用 <p>

,则会导致此问题
<?php 
   $myfield = the_field('somefield', 'options');
   echo strip_tags($myfield, '<p></p>');
 ?>

@Arsh 回答的很好

让我在 WordPress 方法论中解释它的内部工作原理。

大部分时间以 the_{function_name} 开头的函数都有一个函数 get_the_{function_name}

因为 the_{function_name} 是一个输出字段而不是威胁的函数,所以它有不同于 get_the_{function_name} 的数据。

这里有一个简单的例子the_ID()

function the_ID() {
    echo get_the_ID();
}

这里有一个 get_the_ID()

的例子
function get_the_ID() {
    $post = get_post();
    return ! empty( $post ) ? $post->ID : false;
}

了解这些模式可以更好地理解 WordPress 约定及其内部工作原理。

您可以随时查看官方文档以了解 WordPress 功能。

https://developer.wordpress.org/

或查看插件开发人员文档。