2017-02-26 59 views
0

我一直坚持这个星期。我有一个使用Reveal.js的HTML幻灯片演示文稿。我想在最后一张幻灯片上运行一个php脚本。WordPress的获取帖子ID与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文件?谢谢。

回答

0

您是否尝试过使用全局$ 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可以使用$_GET['name']被执行你的JavaScript后。

+0

是的,我尝试了很多使用全局变体的变体。他们都返回null。我认为问题在于PHP没有在帖子中加载。它直接从站点的核心文件中的服务器运行。 php文件不在wordpress安装中。 – Lumo5

+0

如果它不在wordpress中,那么您应该使用全局$ wpdb使用数据库查询。这个链接可能是一个帮助。 https://www.sitepoint.com/working-with-databases-in-wordpress/ – uvishere

+0

好主意。我从来没想过这点。不过,我认为这需要制作许多PHP文件来处理每篇文章。我想只使用一个PHP来处理每个用户的每篇文章。我将如何查询用户正在阅读的最后一篇文章? – Lumo5