[英]Fresh wordpress install call to undefined function
大家好!
似乎我不能在functions.php中使用任何wordpress函數 。 我正在為wordpress創建一個主題,我在其中使用縮略圖,因為在使用wordpress版本3.7時,我必須在functions.php文件中聲明為此添加主題支持。 我這樣做是通過使用。 這適用於我,我可以添加圖像到我的帖子。
但是當我添加一個使用ajax向functions.php發送電子郵件的腳本時,問題就出現了( 我使用了本文中描述的方法 )。 這里的問題是我沒有得到應該成功的消息,電子郵件也不會發送。 當我用ajax返回來自functions.php的數據時(如果我實時查看它會得到相同的消息)我收到消息:
<b>Fatal error</b>: Call to undefined function add_theme_support() in <b>C:\xampp\htdocs\max\wp-content\themes\PortfolioTheme\functions.php</b> on line <b>2</b><br />
所以我試着改組函數並添加上面的郵件腳本,但后來我只為wp_mail函數得到了相同的消息:
<b>Fatal error</b>: Call to undefined function wp_mail() in <b>C:\xampp\htdocs\max\wp-content\themes\PortfolioTheme\functions.php</b> on line <b>16</b><br />
所以我嘗試了一些其他的wordpress功能,同樣的事情發生了,我不明白為什么!
我曾嘗試重新安裝wordpress和更改文件等。 問題可能與主題本身有關,但我不知道是什么原因造成的。 感謝任何幫助!
Php版本:5.4.19
Wordpress版本:3.7
的functions.php:
<?php
// Email Submit
// Note: filter_var() requires PHP >= 5.2.0
if ( isset($_POST['email']) && isset($_POST['name']) && isset($_POST['text']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) ) {
// detect & prevent header injections
$test = "/(content-type|bcc:|cc:|to:)/i";
foreach ( $_POST as $key => $val ) {
if ( preg_match( $test, $val ) ) {
exit;
}
}
//send email
wp_mail( "MYEMAIL@something.se", "Contact Form: ".$_POST['name'], $_POST['text'], "From:" . $_POST['email'] );
}
add_theme_support( 'post-thumbnails' );
?>
的JavaScript(jquery的):
<script type="text/javascript">
$(document).ready(function(){
// Contact Form
$("#contact").submit(function(e){
e.preventDefault();
var name = $("#name").val();
var email = $("#email").val();
var text = $("#text").val();
var dataString = 'name=' + name + '&email=' + email + '&text=' + text;
function isValidEmail(emailAddress) {
var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
return pattern.test(emailAddress);
};
if (isValidEmail(email) && (text.length > 1) && (name.length > 1)){
$.ajax({
type: "POST",
url: "/max/wp-content/themes/PortfolioTheme/functions.php",
data: dataString,
success: function(data){
console.log(data);
//this wont run b/c of the php error
funcs.success();
}
});
} else{
funcs.fault();
}
return false;
});
var funcs={
success:function(){
$("#name").val("");
$("#email").val("");
$("#text").val("");
$('.success').addClass('MsgShow');
$('.error').removeClass('MsgShow');
},
fault:function(){
$('.error').addClass('MsgShow');
$('.success').removeClass('MsgShow');
}
}
});
</script>
主題結構:
###################
#css #
#fonts #
#images #
#js #
# #
#404.php #
#footer.php #
#functions.php #
#header.php #
#index.php #
#page.php #
#single.php #
#style.css #
###################
對於通過電子郵件發送填寫的表單,我只是將提交鏈接到formmail。 它已經設置了所有內容,您無需在functions.php文件中添加一堆代碼。 我不需要ajax風格的形式,所以它對我有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.