【问题标题】:Wordpress get post id with a php fileWordpress 使用 php 文件获取帖子 ID
【发布时间】:2017-02-26 08:14:44
【问题描述】:

我已经坚持了好几个星期了。我有一个使用 Reveal.js 的 HTML 幻灯片演示。我想在最后一张幻灯片上运行一个 php 脚本。

这是 Wordpress 帖子中最后一张幻灯片上的 HTML 按钮:

<button onclick="myFunction()">Open php file</button>
<script>
function myFunction() {
    window.open("../../testing/test.php", "_self");
}
</script>

这是我试图运行的 test.php 文件中的代码,但它返回 null:

define('WP_USE_THEMES', false);
require_once('../wp-load.php');
echo "Post ID: ".get_the_ID(); // Returns nulls but I want this to return 86.

帖子 ID 是 86。我可以将其硬编码到 html 中(如果必须的话),但我不想将它硬编码到 php 文件中。另外,我宁愿不使用 jquery。如何将帖子 ID 放入 php 文件中?谢谢。

【问题讨论】:

    标签: javascript php html wordpress reveal.js


    【解决方案1】:

    您是否尝试过使用全局 $post 变量?

    global $post;
    

    然后就可以拿到id了,

    echo "Post ID: ".$post->
    

    另一种方法是使用$wpdb 全局变量进行数据库查询。

    您还可以使用 JavaScript 将您的帖子 ID 发送到另一个使用 javaScript 表单、Ajax 或 jQuery 的 php 文件。 jQuery Post.

    也许对你来说最简单的方法是这样的

    function myJavascriptFunction() { 
      var javascriptVariable = "John";
      window.location.href = "myphpfile.php?name=" + javascriptVariable; 
    }
    

    在你的 myphpfile.php 上你可以在你的 javascript 被执行之后使用$_GET['name']

    【讨论】:

    • 是的,我尝试了许多使用全局变量的变体。它们都返回 null。我认为问题在于 php 没有在帖子中加载。它直接从站点核心文件中的服务器运行。 php 文件在 wordpress 安装之外。
    • 如果它在wordpress之外,那么你应该使用全局$wpdb来使用数据库查询。此链接可能会有所帮助。 sitepoint.com/working-with-databases-in-wordpress
    • 好主意。我从来没有想到这一点。但是,我认为这需要制作许多 php 文件来处理每个帖子。我只想使用一个 php 来处理每个用户的每个帖子。我将如何查询用户正在阅读的最后一篇文章?
    • 也许,在JS中创建一个变量并将其传递给php文件会更容易。我怎么能这样做?
    猜你喜欢
    • 1970-01-01
    • 2011-06-21
    • 2010-12-04
    • 1970-01-01
    • 2017-04-23
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    • 2014-03-12
    相关资源
    最近更新 更多