在Wordpress中创建没有主题元素的自定义页面

时间:2016-09-19 19:18:18

标签: php wordpress

我正在尝试为使用KnowledgePress主题的Wordpress网站创建自定义主页。我不是PHP或Wordpress开发人员,但我花了几个小时研究这个。无论我尝试什么,该页面最终都会从网站的自定义主题中获取各种主题元素。

我尝试过创建一个空模板,然后在我的自定义页面中使用此模板。模板:

<?php
/**
    Template Name: Empty Template
*/
?>
<html>
<head>
<style type="text/css">
body { background-color: #cccccc; }
#page-content { width: 800px; margin: 20px auto; }
</style>
<title><?php wp_title( '|', true, 'right' ); bloginfo('url'); ?></title>
</head>
<body>
<div id="page-content">
</div>
</body>
</html>

结果仍然显示网页内容包含在网站主题中。

我尝试在主题根目录中创建自定义page-pagename.php文件,例如页的welcome.php:

<html>
<head>
</head>
<body>
<h1>MySite.com</h1>
</body>
</html>

内容仍然包含在网站的外观中。该模板包括:

  • base.php
  • 的index.php
  • page.php文件

如果这有用的话。我有FTP访问权限,目前正在使用自定义页面进行测试,但最终希望这可以用于网站的主页。到目前为止,我所做的一切都没有让我脱离Wordpress主题。

3 个答案:

答案 0 :(得分:1)

您的模板通常作为“内容部分”包含在page.phpsingle.php中,其中还包含主题的页眉,页脚和侧边栏。这就是你总能看到它们的原因。

为了避免这种情况,你必须创建你使用的主题的“子主题”(即主题目录中的一个自己的文件夹),并将自己的/版本/添加到你想要更改的所有那些文件中 - 通常至少为style.cssfunctions.php

所有这些都太多了,不能在这里简短的解释,你真的必须进入Wordpress主题开发,至少如何创建子主题和自己的页面模板(你需要知道一些PHP和一些wordpress API的知识)。

评论后的补充:

扩展实际主题的问题是:一旦主题更新(通常在商业主题中发生),所有更改都将丢失。所以最好设置一个子主题。但这并不复杂,因为你只需要创建那些与主题不同的文件 - 其他一切都是以一种层叠的方式继承的。所以基本上你需要文件style.css,经常(不总是)functions.php和你要添加的页面模板文件(可以命名为任何东西,但必须包含某些元信息作为要识别的注释作为模板)。 style.css还需要包含有关WP主要识别为子主题的主题(google ...)的信息,但它只需要包含您需要的其他 CSS规则 - 其他的都是从原始主题中提取出来的,就像所有其他必要的东西一样。

评论后的下一次补充

通常您首先在WP后端激活子主题,然后转到页面&gt;新的一页。在(右侧边栏)中选择页面模板(必须在子主题目录中),在WP编辑器中插入内容并单击“发布”。但是,您的模板必须包含这样的内容,以包含您刚插入WP编辑器的内容(内容保存在数据库中):

 <?php while (have_posts()) : the_post(); ?>
   <?php the_content(); ?>
 <?php endwhile; ?>

您也可以将“固定内容”直接放入模板中,但无论如何,您必须通过WP管理界面创建“新页面”,以便将其集成到您的网站中。

https://developer.wordpress.org/themes/

看看(好吧,很多看起来......)

答案 1 :(得分:0)

FTP进入你的wordpress网站,转到你当前的主题或子主题文件夹。您可以在/ wp-content / themes /目录中找到它。保存所有主题的副本,然后删除原件。

答案 2 :(得分:0)

编辑站点根目录中的.htaccess文件。添加重写规则以指向静态HTML文件。将规则配置为仅应用于主页(或者您要用自己的自定义HTML而不是WP主题替换的任何静态URL)。修改前的示例.htaccess文件:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

修改后:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^$ somefile.html [L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

[L]告诉重写引擎给定规则是应该评估的最后一条规则(如果匹配)。有关重写规则的更多信息,请访问:Rewrite Tips and Tricks