これはWordpressの 質問と回答フォーラムのプラグイン に質問フォームを追加するためのショートコードです。
[question_form width=\'x\' bordercolor=\'x\' style=\'x\']question form title[/question_form]
この短いコードはこれを呼び出します:
//allow short codes [question_form]
function question_form($atts,$content = "")
{
global $questionformid;
include "askquestionform.php";
return $html;
}
add_shortcode('question_form','question_form');
そしてこれはaskquestionform.phpです。
<?php
load_plugin_textdomain( 'qna-forum', false, 'question-and-answer-forum/languages' );
if(get_option('q_loginrequired_ask')=="TRUE" && !is_user_logged_in())
{
$html = "<p>".__("Please login to ask a question",'qna-forum')."</p>";
$html .= q_loginform(get_permalink());
return $html;
}
//STYLING INFORMATION=============
$formstyle = "";
$introstyle = "";
if(isset($atts['width']))
{
$formstyle .= "width:" . $atts['width'] . ";";
}
if(isset($atts['style']))
{
$formstyle .= $atts['style'];
}
if(isset($atts['bordercolor']))
{
$formstyle .= "border: 2px solid " . $atts['bordercolor'] . ";";
$introstyle .= "background-color:" . $atts['bordercolor'] . ";";
}
if(!isset($_POST['title']) || $_POST['title'] == null)
{
$qtitle = __("Enter Question Title",'qna-forum');
}
else{
$qtitle = $_POST['title'];
}
if(!isset($_POST['question']) || $_POST['question'] == null)
{
$Qtext = __("Enter Your Question Here",'qna-forum');
}
else{
$Qtext = $_POST['question'];
}
$html = '<form class="questionform" name="questionform-'. $questionformid . '" id="questionform-' . $questionformid. '" style=\'' . $formstyle. '\'>
<div class="question-form-intro" style="' . $introstyle . '">';
if($content != "")
{
$html = $html . $content;
}
else
{
$html = $html . __("Use the form below to ask a question",'qna-forum');
}
$html = $html . '</div>';
include_once (ABSPATH . 'wp-content/plugins/question-and-answer-forum/coreform.php');
$html = $html . '</form>';
$questionformid = $questionformid + 1;
question-form-page.phpというテンプレートファイルを作成し、askquestionform.phpのコード全体を貼り付けましたが、何もしませんでした。が表示されます(空白)。
私はまた、question-form-page.phpに以下を入れてみました:
question_form($atts,$content = "")
そして
global $questionformid;
include "askquestionform.php";
return $html;
しかし、私は同じ結果を得ます。
助言がありますか?
do_shortcode()
関数を探していると思います。ショートコードをテンプレートファイルに直接貼り付けることができます。
ショートコードが実際に機能するかどうか、通常の投稿で最初にテストします。もしそうなら、それを実行するためにあなたのテンプレートでこれを使ってください
<?php echo do_shortcode('[shortcode]'); ?>
ダルトンが書いたように、あなたはショートコード機能を探しています。あなたはこの関数を通してあなたのphpファイルでショートコードを使うことができます:
この行をquestion-form-page.phpファイルに入れてみてください。
<? echo do_shortcode('[question_form width=\'x\' bordercolor=\'x\' style=\'x\']question form title[/question_form]'); ?>