[英]Adding custom PHP to Wordpress page
我有一個小的名稱生成器腳本,正在嘗試添加到我的Wordpress網站中。 該腳本本身可以正常工作,我只是不知道如何正確顯示它。
這是一種簡單的選擇形式-用戶選擇要生成的角色競賽和許多名稱,腳本從各種文本文件中提取並吐出名稱。 (這是一個現場演示: http : //muthaoithcreations.com/name2.php )
<?php
if(isset($_POST['submit']) && !empty($_POST['race']) && !empty($_POST['number'])) // after submitting and all fields are filled, this gets ran and the form below disappears
{
$race = $_POST['race'];
$number = $_POST['number'];
echo "<p>You asked for $number $race name(s):</p>";
$first = explode("\n", file_get_contents($race.'first.txt'));
$middle = explode ("\n", file_get_contents($race.'middle.txt'));
$last = explode("\n", file_get_contents($race.'last.txt'));
$first2 = explode("\n", file_get_contents($race.'first.txt'));
$last2 = explode("\n", file_get_contents($race.'last.txt'));
shuffle($first);
shuffle($middle);
shuffle($last);
shuffle($first2);
shuffle($last2);
if ($race == "Horc") {
for ($i = 0; $i < $number; $i++) {
echo $first[$i] . $last[$i] . ' ' . $first2[$i] . $last2[$i] . "<br />\n"; }
} elseif ($race == "Tiznt") {
for ($i = 0; $i < $number; $i++) {
echo $first[$i] . $middle[$i] . $last[$i] . "<br />\n"; }
} else {
for ($i = 0; $i < $number; $i++) {
echo $first[$i] . $last[$i] . "<br />\n"; }
}
echo '<p><input type="button" onclick="history.back();" value="Go Back and Try Again!"></p>';
}
else // when the page loads, this else clause gets ran first
{
echo '<p style="color:red;">Please choose your options.</p>';
?>
<form action="name2.php" method="post">
<label for="race">Select Charater Race:</label>
<select name="race" id="race" />
<option value="Oofo" selected>Oofo</option>
<option value="Tiznt">Tizn't</option>
<option value="Werm">Werm</option>
<option value="Horc">Horc</option>
</select>
<label for="number">Names to Generate:</label>
<select name="number" id="number" />
<option value="1" selected>1</option>
<option value="5">5</option>
<option value="10">10</option>
<option value="20">20</option>
</select>
<input type="submit" name="submit" value="Give Me Names!"/>
</form>
<?php
}
?>
如果我將生成器代碼放入“頁面模板”,然后使用該模板創建新頁面,則該表單正確顯示,但是當用戶提交該表單時:
致命錯誤:在第7行的/home/content/09/10184409/html/namegen-page.php中調用未定義的函數get_header()
(文件名gen-page.php是我的模板文件,位於我的主題目錄中...似乎正在嘗試在我的根目錄中找到它。)
我需要將表單與生成器放在不同的頁面上嗎? 我需要使用Wordpress插件來顯示PHP嗎? 我剛接觸Wordpress,但不確定自己做錯了什么。 任何幫助表示贊賞!
嘗試將此代碼移至主題中的functions.php文件中,並將設置設置為簡碼。 簡碼api位於此處 ,但基本上是您需要做的。
這將涉及將所有代碼包裝在一個函數中,然后創建一個短代碼。
在您主題的functions.php文件中
//This is only to make sure another function doesn't already have that name
if ( ! function_exists( 'custom_name_generator' ) ) {
function custom_name_generator(){
//copy and paste your code here
}
}
//shortcode name, reference to the function name
add_shortcode( 'custom_name_shortcode', 'custom_name_generator' );
現在,在內容區域內頁面上的管理員中,您可以放置[custom_name_shortcode]。 系統將選擇已注冊的簡碼並執行您的代碼。
希望能有所幫助。 祝好運。
問題是您將表單的action
直接設置為模板文件(使用相對URL,無論如何都不太可能),並且無法正確初始化WordPress。 將其替換為使用該模板的頁面的(絕對)永久鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.