将POST内容输出为jQuery.html()字符串

时间:2020-08-31 作者:Luiz Cruz

每个人

我试图创建一个工具提示,该提示显示在段落中的特定单词(a标记)上,显示在我的页面上的帖子内容中。我设法添加了一个类(“office”)正如Gutenberg所说,我在前端使用它来定位其中的锚标记并执行jQuery。html()向作为工具提示div的标记(文本除外)添加更多内容。此工具提示div的内容需要是特定帖子的内容。请注意,我不想在Gutenberg中添加div,因为我想让客户也能轻松完成。基本上这是我的代码:

$(function(){
 $(\'p.office a\').html(\'hover here <div id="tooltip"><?php echo apply_filters(\'the_content\', get_post_field(\'post_content\', 44)) ?></div>\');
});
但当我运行它时,控制台会报告语法错误,我认为这是因为当函数返回内容(带有HTML标记)时,它会为每个HTML元素创建换行符,更不用说<;--wp:段落-->;还有标签。所以这会弄乱要读取的字符串。html()。

请问你如何解决这个问题?

提前谢谢。

1 个回复
最合适的回答,由SO网友:Luiz Cruz 整理而成

好吧,只是通过使用不同的搜索词来解决这个问题:https://stackoverflow.com/questions/10757671/how-to-remove-line-breaks-no-characters-from-the-string

要从PHP返回中删除HTML换行符(实际上不称为“换行符”,因为它们可能会与br标记混淆),您必须使用类似str\\u replace()的字符和PHP换行符。在我的例子中,我就是这样做的:在我需要的帖子内容上用apply\\u filters()为str\\u replace()声明了一个变量:

<?php $content = str_replace(array("\\r", "\\n"), "", apply_filters(\'the_content\', get_post_field(\'post_content\', 44))); ?>
然后在我已有的代码中重复该变量:

$(function(){
 $(\'p.office a\').html(\'hover here <div id="tooltip"><?php echo $content ?></div>\');
});