是否必须先在管理员中添加页面才能创建自定义页面

时间:2018-04-14 15:36:15

标签: wordpress custom-wordpress-pages

我有一个自定义的HTML。我正在使用WordPress,我想创建登录页面。

是否有必要首先添加静态登录页面然后创建页面模板,然后从页面模板下拉列表中选择它?

此外,我正在尝试使用template_redirect动作钩子,如下面的代码,它也有效,但我认为代码没有优化。我正在为此寻找一些标准方法。

我需要创建许多页面。那么,选择这种方法是否合适呢?

此外,对于每个页面,我必须确定此页面是否为登录页面,然后我想执行特定任务。那么,最好的方法是什么?我现在正在使用$_SERVER['REQUEST_URI'],但它也会产生问题,因为我在localhost中工作。因此,假设我的网站网址为http://localhost/sitename,那么对于http://localhost/mysite/login$_SERVER['REQUEST_URI']会返回/mysite/login。因此,它也会在我的实时域中产生问题。

<?php 
add_action( 'template_redirect', 'wpse131387_template_redirect' );
function wpse131387_template_redirect( ){
    call_page('join-us','login.php');
}

function call_page($uri,$page_name){
    if(is_ssl())
    {
        $protocol = 'https://';
    }
    else
    {
        $protocol = 'http://';
    }
    $page_url = $protocol.$_SERVER['HTTPS'].$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    if ($page_url == get_site_url().'/'.$uri) {
        global $wp_query;
        $wp_query->is_404 = false;
        status_header(200);
        include(dirname(__FILE__) . '/'.$page_name);
        exit();
    }
}
?>

有人能建议我创建自定义模板的更好方法吗?是否必须先在管理员中添加页面?加载此登录页面时,如何识别此登录页面? $_SERVER['REQUEST_URI']是localhost子目录中的好方法吗?

1 个答案:

答案 0 :(得分:0)

对于登录页面,Wordpress有一个页面,您可以在其中了解如何自定义。

https://codex.wordpress.org/Customizing_the_Login_Form

对于其他页面,完全取决于您的要求。创建页面然后为它们创建模板没有任何害处。如果您有一些支持页面,例如http://localhost/sitename/profile/edit?id=100,则可以使用查询变量和template_redirect。