【问题标题】:Wordpress function stops page renderingWordpress 功能停止页面渲染
【发布时间】:2017-03-20 15:40:43
【问题描述】:

我是 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>

【问题讨论】:

    标签: php html wordpress


    【解决方案1】:

    按照 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 后端创建一个新页面并选择您的页面模板名称(模板名称在模板文件中的标头调用之前给出)作为后端模板并保存页面。

    在发布按钮下方的页面属性部分,我们可以选择页面模板。

    Screenshot attached

    最后,在您的锚标记中将此新页面 URL 称为 href 值,而不是调用模板文件。

    我们可以从页面标题或页面 slug 中获取页面 URL。

    get_permalink( get_page_by_path( 'your-page-slug' ) )
    
    get_permalink( get_page_by_title( 'Your page title' ) )
    

    【讨论】:

      【解决方案2】:

      这是整个页面的html吗?它应该以

      开头
          <?php get_header(); ?> 
      

      并以

      结尾
          <?php get_footer(); ?>
      

      【讨论】:

      • 已添加,但情况相同。
      【解决方案3】:

      您应该将页面模板分配给 Wordpress 中的任何页面,然后使用页面 url 而不是当前使用。目前您正在使用错误的方式。请改正。另外不要忘记在模板中调用 get_header() 和 get_footer()。

      【讨论】:

      • 如何将页面模板分配给我的页面?
      【解决方案4】:

      好的,也许我们可以换一种方式来解决这个问题。您的链接链接到一个页面模板,而不是一个有点奇怪的 URL。也许这导致 Wordpress 感到困惑并陷入无限循环。

      请问你为什么要链接到这个?是否适用于定制样式的登录页面,因为还有其他解决方案。

      您可以通过将此代码放在您的主题functions.php中来更改普通Wordpress登录页面上的徽标

          // 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 admin 中创建一个页面并选择模板“my-template”并链接到该页面的 URL。

      【讨论】:

      • 是的,它是一个自定义登录页面。如何以其他方式整合它?
      猜你喜欢
      • 2013-08-06
      • 1970-01-01
      • 2021-12-20
      • 2020-12-07
      • 2020-11-27
      • 2015-08-02
      • 2010-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多