2017-02-26 13 views
0

私は数週間これに固執されています。 Reveal.jsを使ったHTMLスライドプレゼンテーションがあります。私は最後のスライドでPHPスクリプトを実行したい。WordpressはPHPファイルの投稿IDを取得

これは、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

グローバル$ポスト変数を使ってみましたか?

echo "Post ID: ".$post-> 

別のアプローチは、データベースクエリを作成する$wpdbグローバル変数を使用している

global $post; 

その後、あなたがIDを取得することができ、。

また、JavaScriptを使用して、javaScriptフォーム、AjaxまたはjQueryを使用して投稿IDを別のPHPファイルに送信することもできます。 jQuery Post

たぶん、あなたのために最も最も簡単な方法は、あなたのjavascriptが実行された後、あなたが$_GET['name']を使用することができ、あなたのmyphpfile.phpでこの

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

のようなものです。

+0

はい、私はグローバルを使用する多くのバリエーションを試しました。彼らはすべてnullを返します。私は問題は、PHPは、ポスト内に読み込まれていないと思う。これは、サイトのコアファイル内のサーバーから直接実行されます。 phpファイルは、WordPressのインストールの外にあります。 – Lumo5

+0

それがwordpressの外にある場合は、global $ wpdbを使用してDBクエリを使用する必要があります。このリンクは役に立ちます。 https://www.sitepoint.com/working-with-databases-in-wordpress/ – uvishere

+0

良いアイデア。私はそれを考えなかった。しかし、私は、各投稿を処理するために多くのPHPファイルを作成する必要があると思います。私は各ユーザーの各投稿を処理するために1つのPHPを使用したいと思います。ユーザーが読んでいた最後の投稿をどのように照会すればよいですか? – Lumo5

関連する問題