有问题了,你的confirm_email.php
函数应该在wordpress的范围内。如果将文件包括到functions.php
文件或wp范围内的某个文件get_template_directory_uri()
功能将正常工作。
您可以通过将代码添加到过滤器或操作挂钩(而不是文件)中来绕过此问题。你可以试试init
钩您可以在url中添加一些参数进行如下检查http://your_domain.com/?is_email=true
然后在如下代码中进行检查:
if($_GET[\'is_email\'] == true){
// do your stuffs
}
您的解决方案代码可能如下所示:
function my_email_function(){
if(isset($_GET[\'is_email\']) && $_GET[\'is_email\'] == true){
$temp_dir = get_template_directory_uri();
$url = $temp_dir."/confirm_email.php?id=".$_REQUEST[\'id\']."&key=".$_REQUEST[\'key\'];
$message = "Username:".$_REQUEST[\'name\']."Click on below link to confirm your email;".$url;
$subject = "Email confirmation Link";
$headers = "From: [email protected]" . "\\r\\n";
if ( mail( $_REQUEST[\'email\'], $subject, $message, $headers ) ) {
echo "1";
} else {
echo "0";
}
}
}
add_action(\'init\', \'my_email_function\');