WordPress 循环 (the_content)

Wordpress Loop (the_content)

我正在使用 wordpress 创建主题,但我对 php the_content(); 的工作原理有些困惑。

在下面的示例中,该函数检索单个 post 的所有内容。这被包装在 div 'entry-content' 中。这允许我设置内容的样式

<div class="entry-content">
        <?php the_content(); ?>
    </div><!-- .entry-content -->

但是,如果我在 the_content 中有多个 div 怎么办,例如,一些图像可能有一个 div id="image-small" 其他图像可能有一个 div "image-large"

这是否意味着我必须使用“text”选项卡将所有 HTML 标记复制并粘贴到 wordpress 后端。这样,包括 divs 在内的所有标记都将存储在数据库中,并使用 the_content() 函数检索并注入页面

这似乎是使模板起作用的一种非常糟糕的方法。

1) 您在数据库中存储了乱七八糟的标记

2) 用户可以通过(文本选项卡)编辑标记和拆分模板

是否有更好的解决方案,我是否误解了 WP 的工作原理? 人们是否通过后端将标记存储在 BD 中 (wordpress ui)

非常感谢

是的,您是正确的,您在数据库中存储了一些标记,理论上,用户可以破坏模板。然而,在实践中,您很少会看到这种情况。

但是,我们的想法是内容中应该只有很少的标记。您可能会看到与图像、table 或表单相关的样式,但除此之外很少见。

事实上,wordpress 通常与 WYSIWYG 编辑器一起使用,它会在您插入图像时添加一些标记,但通常不会破坏较大的模板。

是的,它将标记存储在数据库中。

您还可以将内容分成不同的自定义字段,并在模板中的任意位置显示这些字段。 因此,您用于布局的标记存储在模板中,而不是数据库中。

您可以为此创建自定义字段或元框。如果你不想写代码,有一个非常流行的插件:http://www.advancedcustomfields.com/

一般来说,您不应该将编辑器用于模板设计,而是用于内容。

对于模板设计,更改模板文件,例如,如果它是关于"post",那么为此更改"single.php"文件。

But what if I have a number of divs WITHIN the_content, for example some images may have a div id="image-small" others may have a div "image-large"

图像已经有 class 和您选择的图像尺寸,所以您不需要用 div 包裹它并给它一个尺寸 class,如果出于某种原因,您只想影响特定图像,因此您 class 每个图像都有图像 ID。

如果你需要,你可以安装 TinyMCE Advanced,它会给你一个选项来添加特定的 classes 到编辑器并使用它来设计编辑器内的特定部分,例如:如果您想在编辑器中为某些图像添加边框半径,您可以通过将此代码放入您的 "functions.php" 文件中来将 class border_radius 添加到编辑器:

add_filter( 'tiny_mce_before_init', 'tuts_mce_before_init' );
function tuts_mce_before_init( $settings ) {

    $style_formats = array(
        array(
            'title' => __('Border Radius', 'your_theme'),
            'selector' => 'p',
            'classes' => 'border_radius',
        )
    );
    $settings['style_formats'] = json_encode( $style_formats );
    return $settings;
}

您将在 "format" 选项卡下的编辑器中看到 > "formats" class "border-radius",现在将其添加到您想要的图像/其他元素。

将 class 添加到带有您想要的设置的 CSS 样式文件中,您就完成了。