2016-12-01 9 views
-1

私はドロップダウンの選択に基づいて私のPHPファイルの1つを含めることができるように設定しようとしています。私はそれを行うように見える他の答えを見つけましたが、私はそれを試すとき、私はエラー "未定義の関数"を取得します。私は私が「get_template_part」のエラーを取得するオプションのいずれかを選択してボタンを押すとドロップダウンの選択に基づいてPHPファイルを含める

<?php 


$includes=array(
     'phpfile1'=>'phpfile1.php', 
     'phpfile2'=>'phpfile2.php' 
     ); 

if(isset($_POST['cmtype']) && array_key_exists($_POST['cmtype'], $includes)) : 
    get_template_part($includes[$_POST['cmtype']]); 
endif; 
?> 


<form id="selection_form" action="" method="post"> 
<select name="cmtype" id="cmtype"> 
<option value="default"> </option> 
<option value="phpfile1">PHP file 1</option> 
<option value="phpfile2">PHP File 2</option> 
</select> 
<input type="submit" name="select_mode_submit" value="Get File"> 
</form> 

オリジナルの答えはここにここにOriginal

であることは私のコードです。 IF文にある関数と何か関係があると思いますが、それを修正する方法がわかりません。

+1

get_template_part()はどこで定義されていますか? – markdwhite

+2

完全なエラーが役に立ちます –

+0

この関数 'get_template_part'を持つファイルがありますか? –

答えて

0
`get_template_part() 

は、WordPressの組み込み関数であり、PHPの組み込み関数ではありません。 WordPressのインストールに問題がある可能性があります。

0

「get_template_part」は私が使用していないWordPressに固有の答えです。代わりに、代わりにBart Bergmansが提案したように()をインクルードするように変更しようとしましたが、うまくいくように見えます。

ありがとうございます!

0

選択した内容に基づいてファイル名を選択することは明らかです。しかし、あなたが選んだ後に何をしようとしているのかははっきりしているはずです。あなたのコードでは、get_template_part()関数を使用しましたが、そのような組み込み関数はありません。あなたがWordpressで見たことがあるなら、あなたはその関数がどこかで定義されていることを知るべきです。だからあなたもあなたのコードで定義しようとする必要があります。

0

includeステートメントを使用してください。

<?php 
$includes = array(
    'foo'=>'/tmp/foo.php', 
    'bar'=>'/tmp/bar.php' 
); 

if(
    $_SERVER['REQUEST_METHOD'] === 'POST' 
    && isset($_POST['cmtype']) 
    && array_key_exists($_POST['cmtype'], $includes) 
) { 
    include $includes[$_POST['cmtype']]; 
} 
?> 
<form action="" method="post"> 
    <select name="cmtype"> 
     <option value="foo">Foo</option> 
     <option value="bar">Bar</option> 
    </select> 
    <input type="submit" value="Include file"> 
</form> 
関連する問題