spot_img
HomeWordPress教程wordpress建站公司 将外部 PHP 文件包含到 Wordpress 自定义模板中

wordpress建站公司 将外部 PHP 文件包含到 WordPress 自定义模板中

JasperAI 10000字免费额度试用

是否可以将外部 PHP 文件包含到自定义模板中?

我正在尝试将博客添加到我的网站中。 我的站点中已经有了页眉、页脚和侧边栏布局。 我可以在我的自定义模板中使用它们吗?

<?php
/*
Template Name: Blog
*/
?>
<?php include( PATH . 'http://www.example.com/includes/header.php' );  ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
  <h2><a href="https://wordpress.stackexchange.com/questions/111628/<?php the_permalink() ?>">
    <?php the_title(); ?>
    </a></h2>
  <?php include (TEMPLATEPATH . '/inc/meta.php' ); ?>
  <div class="entry">
    <?php the_content(); ?>
  </div>
  <div class="postmetadata">
    <?php the_tags('Tags: ', ', ', '<br />'); ?>
    Posted in
    <?php the_category(', ') ?>
    |
    <?php comments_popup_link('No Comments &#187;', '1 Comment &#187;', '% Comments &#187;'); ?>
  </div>
</div>
<?php endwhile; ?>
<div class="mypagination">
  <?php include (TEMPLATEPATH . '/inc/nav.php' ); ?>
</div>
<?php else : ?>
<h2>Not Found</h2>
<?php endif; ?>
<?php include( PATH . 'http://www.example.com/includes/sidebar.php' );  ?>
<?php include( PATH . 'http://www.example.com/includes/footer.php' );  ?>

我也试过:

<?php include('http://mywebsite.com/includes/header.php'); ?>

不,您不能按照您指定的方式将 PHP 文件包含在主题中。

要了解原因,我们所要做的就是运用一些常识和基本的批判性思维:

  1. 您将向远程服务器发出远程请求 include 不能这样做
  2. 如果奇迹般地起作用了,你就会有一个主要的安全漏洞,因为我可以做这样的事情: include( 'http://yoursite/wp-config.php' ); echo DB_PASSWORD;. 想象一下破解网站是多么容易! 什么能阻止我,包括 facebook.com/index.php
  3. 如果即使那样它也能以某种方式工作,并且它是安全的,想象一下它的缓慢! 您向服务器发出请求,然后服务器开始为页眉发出一个请求,为侧边栏发出另一个请求,为页脚发出另一个请求,所有这些等待,谁会被打扰?
  4. 但最后,即使 include 可以发出远程请求。 它不能,为什么它会返回 PHP 代码? 它不会返回服务器吐出的内容,也就是最终确定的 html 吗? 服务器在返回之前运行任何 PHP,因此您包含的内容中没有 PHP。

所以不,这是不可能的。 但是,将您问题中的代码快速复制粘贴到 PHP 脚本中,然后快速访问会比这里的任何人都更快地告诉您。

相反,您只能包含来自您的服务器当前运行的本地文件系统的文件。 您永远不会将 URL 传递给 include 或 require 语句。

所以如果我在 index.php 中,并且在同一个文件夹中有一个名为 sidebar.php 的文件,我会像这样包含它:

include('sidebar.php');

include 如果失败则返回一个值。 include 语句的语义是通用的基本 PHP,在这个问答网站上是题外话。

高质量外链购买

但是,我保留了这个问题,因为您应该使用一个 WordPress API 函数,它比 include 和 require 更好地满足您的需要。

要在主题中包含模板部分,请使用:

get_template_part( 'partname' );

此函数还将查看您指定部分的子主题或父主题。

例如,在这段代码中:

get_template_part( 'sidebar', 'first' );

它会寻找并包括它找到的第一个:

  • 儿童主题 sidebar-first.php
  • 父主题 sidebar-first.php
  • 儿童主题 sidebar.php
  • 父主题 sidebar.php

应该注意的是,您应该只使用 get_template_part 来包含模板文件。 不要用它来包含诸如库之类的文件,或者其他不输出 html 的 PHP 文件。

我建议您在继续之前阅读以下主题:

  • PHP.Net 上的 include 和 require 函数
  • 父子主题
  • 模板层次结构以及 WordPress 如何选择要使用的模板
  • <?php php ?> <?php tag ?> <?php spam ?> <?php and ?> <?php why ?> <?php its ?> <?php bad ?>
  • get_template_part
  • WP_HTTP API,在那些真正的时代,你真的需要对 API 进行远程请求。 功能如 wp_remote_getwp_remote_post 将在这里提供帮助。
  • PHP调试。 您的白页是 PHP 致命错误,但是因为您将错误日志记录设置为从前端隐藏它,所以它被记录到您不知道的错误日志文件中。 找到你的错误日志,定义 WP_DEBUG 在你的 wp-config.php 并安装诸如调试栏或查询监视器之类的插件,这些将对您有很大帮助。 确保你打电话 wp_footer 虽然在您的模板页脚中。

假设你有这个场景:

您的 wordpress 安装作为您的站点托管在“www”根文件夹中,而您的 header.php 位于“www/includes”文件夹中。

在你的 wordpress 主题中,只需添加

<?php
include('includes/header.php');
?>

当 WordPress 读取主题文件时,它使用根路径。

WordPress建站服务
5分钟生成10篇英文软文article forge软件试用
siteground guangda
WordPress花园官方账号
WordPress花园隶致力于为广大跨境电商和独立站爱好者提供优质的WordPress教程、Woocommerce教程、Facebook、Twitter、tiktok、Instagram教程和谷歌SEO教程等资料和对应的建站推广服务。关注‘哟派出海’公众号了解最新资讯。粉丝福利:Shopline免费独立站建设14天优惠 商务合作: [email protected]
RELATED ARTICLES
spot_img