我是Wordpress的新手所以请在这里忍受。
我正在使用以下链接从wordpress页面导航到另一个页面:
<a href="<?php echo site_url(); ?>/wp-content/themes/woffice-child-theme/page-templates/loginF.php"><img src="./wp-content/themes/woffice-child-theme/page-templates/images/signin-btn.png"></a>
loginF.php确实加载但是从页面的任何地方我调用任何wordpress函数,如home_url()或wp_login_form(),页面停止渲染。例如,如果我将home_url()放在页面的开头,那么我在浏览器中会得到一个空页面。为什么会这样?我是否会以某种方式走出wordpress背景?怎么办?
这是loginF.php:
<html>
<?php
$redirect_url = home_url();
?>
<head>
<title>Title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="/wp-content/themes/woffice-child-theme/page-templates/style2.css">
<link href="https://fonts.googleapis.com/css?family=Lato:300,400,700" rel="stylesheet">
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700,300' rel='stylesheet' type='text/css'>
</head>
<body>
<div class="frontpage-content">
<div class="front-wrap">
<br/>
<div class="new-login-logo text-center"><img src="/wp-content/themes/woffice-child-theme/page-templates/images/new-login-logo.png"></div>
<br/><br/>
<div class="frontpage-fields">
<input type="text" name="log" id="user" class="input" placeholder="Email Address">
<input type="password" name="pwd" id="pass" class="input" placeholder="Password">
</div>
<div class="forgot-password-new"><a href="#">Forgot your password?</a></div>
<br/>
<div class="text-center"><a href="#"><img src="./images/captcha-image.png"></a></div>
<br/>
<div class="text-center new-login-space"><a href="#"><img src="/wp-content/themes/woffice-child-theme/page-templates/images/new-login-btn.png"></a></div>
</div>
</div>
</body>
</html>
答案 0 :(得分:3)
根据WordPress标准创建新的页面模板。
<?php
/**
* Template Name: My Custom Page
*/
get_header(); ?>
<!-- Your code goes here -->
<?php get_footer(); ?>
https://developer.wordpress.org/themes/template-files-section/page-template-files/page-templates/
然后从WordPress后端创建一个新页面并选择您的页面模板名称(模板名称在模板文件中的标题调用之前给出)作为模板在后端&amp;保存页面。
在发布按钮下方的页面属性部分,我们可以选择页面模板。
最后,将锚标记中的新网页网址称为href
值,而不是调用模板文件。
我们可以从页面标题或页面slug中获取页面URL。
get_permalink( get_page_by_path( 'your-page-slug' ) )
get_permalink( get_page_by_title( 'Your page title' ) )
答案 1 :(得分:0)
这是整个页面的HTML吗?它应该以
开头 <?php get_header(); ?>
以
结束 <?php get_footer(); ?>
答案 2 :(得分:0)
您应该将页面模板分配给Wordpress中的任何页面,然后使用页面网址而不是使用当前页面。目前你使用的方式不对。请更正它。另外,不要忘记在模板中调用get_header()和get_footer()。
答案 3 :(得分:0)
好吧,也许我们可以用另一种方式来。您的链接链接到页面模板,而不是有点奇怪的URL。也许这会导致Wordpress混淆并陷入无限循环。
我可以问你为什么试图链接到这个?它适用于定制风格的登录页面,因为还有其他解决方案。
您可以通过将此代码放在主题函数中来更改常规Wordpress登录页面上的徽标.php
// log in logo link
add_filter( 'login_headerurl', 'custom_loginlogo_url' );
function custom_loginlogo_url($url) {
return 'http://www.yourlink.co.uk';
}
// login logo
function my_login_logo() { ?>
<style type="text/css">
body.login div#login h1 a {
background-image: url(<?php echo get_stylesheet_directory_uri(); ?>/library/images/logo.png);
padding-bottom: 15px;
height: 74px;
width: auto;
background-size: 60% auto;
}
</style>
<?php }
add_action( 'login_enqueue_scripts', 'my_login_logo' );
然后只需链接到www.yourdomain.co.uk/wp-admin
但是,如果您打算使用自定义登录页面,请使用当前有效的模板文件,该文件应该以这样的方式打开
<?php /* Template Name: my-template */ ?>
并包含在该页面中。然后在Wordpress管理员中创建一个页面并选择模板“my-template”并改为链接到该页面的URL。