Get_模板_目录_uri()不起作用

时间:2018-05-12 作者:Mohd Hasan

我在以下代码行中遇到问题。实际上我已经创建了一个custom file confirm_email.php 其中我编写了以下代码。当我removing $temp_dir variable 它工作得很好,但是当我包含它时,这个页面会返回internal server error

$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";
}

1 个回复
最合适的回答,由SO网友:Aqib Ashef 整理而成

有问题了,你的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\');

结束

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register