我正在使用wordpress创建一个主题,但我有点困惑 php the_content(); 的工作方式。
在下面的示例中,该函数检索单个帖子的所有内容。这包含在div'entry-content'中。这允许我设置内容的样式
<div class="entry-content">
<?php the_content(); ?>
</div><!-- .entry-content -->
但是如果我在the_content中有多个div,例如某些图像可能有div id =“image-small”,那么其他人可能会有div“image-large”
这是否意味着我必须使用“文本”标签将我的所有HTML标记复制并粘贴到wordpress后端。这样,包括div在内的所有标记都将存储在数据库中,并使用 the_content()函数检索并注入页面
这似乎是使模板有效的一种非常糟糕的方式。
1)你在DB中存储凌乱的标记
2)用户可以编辑标记并通过(文本标签)
打破模板有没有更好的解决方案,我误解了WP的工作原理吗? 人们是否通过后端(wordpress ui)将标记存储在BD中
非常感谢
答案 0 :(得分:0)
是的,你在数据库中存储一些标记是正确的,理论上,用户可能会破坏模板。然而,在实践中,你很少看到这种情况发生。
然而,这个想法是内容中应该有很少的标记。您可能会看到与图像,表格或表单相关的样式,但其他内容很少。
事实上,wordpress通常意味着与WYSIWYG编辑器一起使用,当您插入图像时会添加一些标记,但通常不会破坏您的大模板。
答案 1 :(得分:0)
是的,它将标记存储在数据库中。
您还可以将内容分成不同的自定义字段,并在模板中的任何位置显示这些字段。 因此,用于布局的标记存储在模板中,而不是存储在数据库中。
您可以为此创建自定义字段或元框。如果您不想编码,那么有一个非常受欢迎的插件:http://www.advancedcustomfields.com/
答案 2 :(得分:0)
通常,您不应该使用编辑器进行模板设计,而是将其用于内容。
对于模板设计,更改模板文件,例如,如果它是关于&#34; post&#34;,那么更改&#34; single.php&#34;提交此文件。
但是,如果我在the_content中有多个div,那该怎么办呢? 一些图像可能有一个div id =&#34; image-small&#34;其他人可能有一个div &#34;图像大&#34;
图片已经包含了您选择的图片大小的类,所以您不需要用div包装它并给它一个大小类,如果由于某种原因您只想影响特定的图像,那么你每个图像都有具有图像ID的类。
如果需要,可以安装TinyMCE Advanced,它会为您提供一个选项,可以将特定的类添加到编辑器中,并将其用于编辑器中的设计特定部分,例如:如果要添加边框半径在编辑器中的某些图像中,您可以通过将此代码放入&#34; functions.php&#34;文件:
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;
}
您将在编辑器中看到&#34;格式&#34;标签&gt; &#34;格式&#34;类&#34; border-radius&#34;,现在将其添加到您想要的图像/其他元素。
使用您想要的设置将类添加到CSS样式文件中。