Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Wordpress的Javascript中的PHP_Php_Javascript_Wordpress - Fatal编程技术网

使用Wordpress的Javascript中的PHP

使用Wordpress的Javascript中的PHP,php,javascript,wordpress,Php,Javascript,Wordpress,我已经找到了一些关于在JS中使用PHP的文章,但到目前为止没有任何帮助,所以这里是我的问题。我需要将wordpress帖子内容(标题、摘录和缩略图)调用到JS的“预览”功能中(本质上是使用调用帖子)。我已经能够使“扩展预览”从文章缩略图和标题打开,但我有麻烦添加文章内容的预览 我试图将php调用添加到“grid.js”文件中的预览函数中,但是我不确定如何“缩小”php代码。请参阅下面的代码 最初读取的代码: this.$title = $( '<h3></h3>' );

我已经找到了一些关于在JS中使用PHP的文章,但到目前为止没有任何帮助,所以这里是我的问题。我需要将wordpress帖子内容(标题、摘录和缩略图)调用到JS的“预览”功能中(本质上是使用调用帖子)。我已经能够使“扩展预览”从文章缩略图和标题打开,但我有麻烦添加文章内容的预览

我试图将php调用添加到“grid.js”文件中的预览函数中,但是我不确定如何“缩小”php代码。请参阅下面的代码

最初读取的代码:

this.$title = $( '<h3></h3>' );
this.$title=$('');
下面是我如何称呼这篇文章的标题:

this.$title = $( '<h3><?php echo get_the_title(); ?></h3>' );
this.$title=$('');

任何帮助都将不胜感激!提前感谢。

一些澄清:PHP是一种服务器端语言;这意味着它只能在服务器端解析和执行。 也就是说,这里有两个选项,一个更优雅,另一个有点蹩脚(我只在非常罕见和有限的情况下使用):

  • 优雅的解决方案:WordPressAjax。在functions.php文件中设置一个ajax可调用函数,该函数返回填充数据的html:

    a。将ajax可调用操作添加到functions.php文件:

    add_action("wp_ajax_[function_name]", "function_name");
    //If the action wants users to be logged in, you can specify a different function to be called in case a user is not:
    //add_action("wp_ajax_nopriv_[function_name]", "[function_name_for_non_logged_users]");
    
    b。指定要调用的函数(如果需要,为未登录的用户指定第二个函数)

    c。在模板中的某个地方编写前端代码(显然,要使其可用于grid.js调用)。您需要使用post数据填充$post。我倾向于使用全局包装器:

    <script type="text/javascript">
        <?php 
        $nonce = wp_create_nonce('function_name_nonce');
        $endpoint = admin_url('admin-ajax.php');
        ?>
        var Globals = {
          nonce: "<?php echo $nonce; ?>", 
          postId: "<?php echo $post->ID; ?>", 
          endpoint: "<?php echo $endpoint; ?>"
        }
    </script>
    
    看看这个

    这是一个很好的教程(可以在谷歌的第一页找到):

  • 糟糕的解决方案:生成的数据填充JS代码(我会坚持使用JS对象)。在这种情况下,您将需要在页面(模板或任何其他可以访问PHP的内容)中添加一个脚本标记,在其中输出JS有效代码:

    var title = "<?php the_title(); ?>";
    
    var title=”“;
    

  • 一些澄清:PHP是一种服务器端语言;这意味着它只能在服务器端解析和执行。 也就是说,这里有两个选项,一个更优雅,另一个有点蹩脚(我只在非常罕见和有限的情况下使用):

  • 优雅的解决方案:WordPressAjax。在functions.php文件中设置一个ajax可调用函数,该函数返回填充数据的html:

    a。将ajax可调用操作添加到functions.php文件:

    add_action("wp_ajax_[function_name]", "function_name");
    //If the action wants users to be logged in, you can specify a different function to be called in case a user is not:
    //add_action("wp_ajax_nopriv_[function_name]", "[function_name_for_non_logged_users]");
    
    b。指定要调用的函数(如果需要,为未登录的用户指定第二个函数)

    c。在模板中的某个地方编写前端代码(显然,要使其可用于grid.js调用)。您需要使用post数据填充$post。我倾向于使用全局包装器:

    <script type="text/javascript">
        <?php 
        $nonce = wp_create_nonce('function_name_nonce');
        $endpoint = admin_url('admin-ajax.php');
        ?>
        var Globals = {
          nonce: "<?php echo $nonce; ?>", 
          postId: "<?php echo $post->ID; ?>", 
          endpoint: "<?php echo $endpoint; ?>"
        }
    </script>
    
    看看这个

    这是一个很好的教程(可以在谷歌的第一页找到):

  • 糟糕的解决方案:生成的数据填充JS代码(我会坚持使用JS对象)。在这种情况下,您将需要在页面(模板或任何其他可以访问PHP的内容)中添加一个脚本标记,在其中输出JS有效代码:

    var title = "<?php the_title(); ?>";
    
    var title=”“;
    


  • 这在grid.js文件中吗?确实是。。在预览函数中:默认情况下,服务器不会解析js文件中的php。。。仅在.php中files@user2105735:PHP不能在任何扩展上单独工作。在大多数主机上,PHP(默认情况下)不会解析JS文件。感谢insight的帮助。不需要,但是如果不是在JS文件中,我会怎么做呢?这是在grid.JS文件中吗?当然是。。在预览函数中:默认情况下,服务器不会解析js文件中的php。。。仅在.php中files@user2105735:PHP不能在任何扩展上单独工作。在大多数主机上,PHP(默认情况下)不会解析JS文件。感谢insight的帮助。不需要,但是如果不是在JS文件中,我会怎么做呢?谢谢你的澄清。我将尝试一下这些解决方案。所有的帮助都是非常感谢的!再次感谢你的帮助,但我仍在为此苦苦挣扎。我已经在我的模板文件中添加了你的JS,并尝试了一些不同的变体,但没有成功。为了与grid.js文件通信,我是否需要添加任何附加内容?Phew在优雅解决方案的一个铰接版本中写道。我可能打错了什么,试着让我知道,我会再检查。真的很感谢你到目前为止的帮助。我将尽我最大的努力实施您的解决方案。我会让你了解我的最新进展。再次非常感谢!嗯,我一直在研究并尝试实施您的“优雅”解决方案,可惜没有成功。我更倾向于你的JS对象解决方案。。我可以使用您的代码将对象的字符串输出到页面,但我不知道如何将其输出到扩展的div(由grid.js创建)文件中。。我不想这么穷困,但我已经为此绞尽脑汁好几天了您能否提供更多关于如何使用JS对象方法实现这一点的信息?再次,非常感谢您迄今为止的所有帮助和今后的任何帮助!谢谢你的澄清。我将尝试一下这些解决方案。所有的帮助都是非常感谢的!再次感谢你的帮助,但我仍在为此苦苦挣扎。我已经在我的模板文件中添加了你的JS,并尝试了一些不同的变体,但没有成功。为了与grid.js文件通信,我是否需要添加任何附加内容?Phew在优雅解决方案的一个铰接版本中写道。我可能打错了什么,试着让我知道,我会再检查。真的很感谢你到目前为止的帮助。我将尽我最大的努力实施您的解决方案。我会让你了解我的最新进展。再次非常感谢!嗯,我一直在研究并尝试实施您的“优雅”解决方案,可惜没有成功。更像是个傻瓜