我正试图从头开始创建一个定制的WordPress主题。如您所见,我的文件结构如下所示--主题文件夹中的footer.php、header.php、index.php、about.php和contact.php:

我已经完成了主页(index.php),现在我正在尝试创建这些其他页面并链接到它们。但是,当我从主页访问这些页面时,唯一能让它们链接的方法是通过这个长长的、丑陋的链接结构:

我在想我是不是走错路了。如果我在WordPress中创建新页面而不是通过FTP手动创建页面,这是否允许我更改permalink结构,以便我可以拥有new.gatewaywebdesign.com/contact.php而不是new.gatewaywebdesign.com/wp-content/themes/gatewaywebdesign/contact.php?
我继续尝试在contact仪表板中创建一个WordPress页面,但它不允许我在站点名称之后删除index.php:

还有其他关于编辑/修整链接结构的建议吗?谢谢
发布于 2017-06-26 01:46:20
正如@Milo在他的答复中提到的那样,您不能也不应该直接调用模板文件。这是一个安全风险,您将无法再访问WordPress的引擎,因此您不能使用像the_permalink这样的函数。
若要将模板部件包括在home.php中或任何您希望的地方,可以使用get_template_part():
get_template_part( 'relative/path/to/template' );不包括.php。它将自动添加。因此,如果您的about.php位于/theme/my-theme/folder/中,而您的home.php位于/theme/my-theme/中,则应以下列方式使用此函数:
get_template_part( 'folder/about' );这将包括about.php,无论您在哪里使用代码。现在,您可以在您的WordPress中完全访问about.php,并且不需要任何丑陋的URL。
若要添加页面,请创建名为page-whatever.php的空白php文件。然后将以下内容添加到其标题中:
<?php
/**
* This is the template for Pages
*
* @package YourPackage
*/
get_header();
get_template_part('path/to/portfolio');现在,您可以在后端看到新的页面模板,同时添加一个页面(在“页面模板”下拉菜单下)。
发布于 2017-06-26 01:29:43
主题PHP文件永远不会直接链接或加载。您可以通过管理界面创建页面,其内容驻留在数据库中,WordPress根据请求的类型将传入的请求映射到适当的主题文件-- home、归档、单个post、单个页面等。查看模板层次获得更多信息,了解每种类型的请求都使用了哪些主题文件。
index.php出现在permalinks中的问题是分开的。您通常需要一个启用了mod_rewrite的服务器来实现完整的“漂亮”Permalinks。现在,您已经得到了所谓的PATHINFO,或“几乎漂亮”的permalinks。请阅读使用Permalink页面,以获得关于每个需求的更多信息。
发布于 2017-06-26 07:43:53
如果您希望在//site.com/contact/上有不同的模板,那么您需要创建一个页面,将这个permalink设置为它,并创建名为page-contact.php的模板文件。
这就是工作方案的工作方式:
page-contact.php)page.php、single.php等)index.php因此,如果它找不到第一,它会转到第二,然后下降到index.php。只要看看如何构建WP模板层次结构
https://wordpress.stackexchange.com/questions/271322
复制相似问题