将the_content()存储到javascript / jquery变量中

时间:2014-08-23 11:10:04

标签: javascript php jquery wordpress

我该怎么做?将the_content()存储到变量中。我尝试了什么:

<script type="text/javascript">
    window.the_content = "<?php the_content(); ?>";
</script>

和这个

<?php 
    ob_start();
    the_content();
    $content = ob_get_clean();
?>

<script type="text/javascript">
    window.the_content = "<?php echo $content; ?>";
</script>

问题在于它是一个多行字符串,它不能存储为javascript变量。我试着修剪()chop()htmlentities_decode()字符串,但它没用。

我知道有一个函数<?php echo get_the_content(); ?>可以取消html标签,但空格和换行符仍然存在。我希望能够通过jquery解析the_content()。

复制Google Chrome开发者工具输出的粘贴:

                                window.the_content = "<h1>Welcome to dasqwe tsqwe dwemo site</h1>
<p>&nbsp;</p>
<p>asdioquwidqwd</p>
<p>qwdoqwkdpqkwdkoqpwodkqwodpqwd</p>
<p>qwdkpoqwkdpqwokdpqwokdpqwkdpqwodkq</p>
<p>wdqwodkqpowkdpqwkdpqwkdopqwkdoq</p>
<p>wdqkowpdkqwpokdpoqkwdpqowkdpoqwkdqwd</p>
<p><span id="more-13"></span></p>
<h1>Page 2</h1>
<p>qwiodjiqwjdqiowjdioqwjdiqwd</p>
<p>qwdjoqwijdoqiwjdioqwjiodjqwodjqowdijas</p>
<p>dqoijwdioqjwdoqjwiodjqwodjqwdjasdqwodijqowdjqiowjdoqjdoad</p>
<p>qwodiqwjdoiqwdijoqwdqwiqiodijoqwdjiqwq</p>
<p>&nbsp;</p>
";

3 个答案:

答案 0 :(得分:0)

请将所有换行符替换为<br/>

<script type="text/javascript">
  window.the_content = "<?php 
    ob_start();
    the_content();
    $content = ob_get_clean();
    echo str_replace("\n","<br/>", str_replace("\r", "", $content));              
  ?>
</script>

在JS方面:

$( '.content' ).the_content);

答案 1 :(得分:0)

尝试使用json_encode,它应该会逃脱大部分会破坏的字符

<?php
    ob_start();
    the_content();
    $data = ob_get_contents();        
    ob_end_clean();        
?>
window.the_content = <?php echo json_encode($data); ?>;

您也可以删除新行

window.the_content = "<?php str_replace("\n","",the_content()); ?>";

请注意,您必须执行其他操作以确保它不会中断,例如转义双引号等。

答案 2 :(得分:0)

PHP端的JSON编码和Javascript端的解码将为您处理。

<?php
    ob_start();
    the_content();
    $content = ob_get_clean();
?>
<script type="text/javascript">
    window.the_content = <?php echo json_encode($content); ?>;
</script>