首页 > 解决方案 > 在functions.php中为带有超链接的Wordpress Post添加HTML文本作为默认代码?

问题描述

我想将 HTML 代码添加到我的子主题的 function.php 文件中,以在 Wordpress 中创建默认帖子。我尝试了这个奇妙的解决方案,它对标准文本起到了作用。我可以为文本添加标准文本,甚至是简单的 HTML 粗体和斜体标记。效果很好。

    add_filter( 'default_content', 'my_editor_content' );
function my_editor_content( $content ) {
    $content = "default content goes here....";
    return $content;
}

但是,对于要在 ($content = " default content going here.... ";) 的引号内添加的内容,我想添加带有多个超链接的 HTML 文本,它们有引号会破坏这个 PHP 的功能. 由于代码需要引号,多个超链接将不起作用。

有什么办法可以解决这个问题,允许在functions.php中为Wordpress中的默认帖子添加一些带有多个超链接的HTML?谢谢。

标签: phphtmlwordpress

解决方案


你不需要插件来实现它,有几种方法可以解决它(我知道),可能还有更多:

您可以使用嵌套的单引号和双引号,因此,要将锚标记放置在字符串中,您可以这样做:

$content = "This is normal text and this is a <a href='http://example.com'>link</a>";

您可以做的第二件事是使用 \(反斜杠)对特殊字符进行转义,因此如果您想将锚标签放入内容变量中,只需执行以下操作:

$content = "Some text <a href=\"http://example.com\">link</a>";

实现您想要的东西的一种更复杂的方法,但对于具有大量 HTML 元素的大字符串来说更清洁,是以ob_start这种方式使用:

<?php ob_start(); ?>
 <a href="http://example.com">Link this</a>
 <div>This is a lot of text?</div>
 <a href='#'>Another Link</a>
 <a href="<?php echo $a_url; ?>">Another Link</a>
 <!-- you can put whatever you want here -->
<?php
$content = ob_get_contents();
ob_end_clean();
?>

在最后一种情况下,您将所有的 HTML 标记都作为字符串包含在$content变量中。

最后但并非最不重要的一点是,您还可以使用heredocnowdoc:在我留下的链接中更好地解释我可以解释的内容。


推荐阅读