我想为我的WordPress博客创建一个自定义页面,将在其中执行我的PHP代码,同时保留整体网站CSS/主题/设计的一部分。
PHP代码将使用第三方api(因此我需要包括其他PHP文件)。
我该怎么做呢?
注:我没有特定的需要与WordPress API交互-除了包括某些其他PHP库,我需要我没有其他依赖的PHP代码,我想包括在WordPress页面。所以很明显,任何不需要学习WordPress API的解决方案都是最好的。
我想为我的WordPress博客创建一个自定义页面,将在其中执行我的PHP代码,同时保留整体网站CSS/主题/设计的一部分。
PHP代码将使用第三方api(因此我需要包括其他PHP文件)。
我该怎么做呢?
注:我没有特定的需要与WordPress API交互-除了包括某些其他PHP库,我需要我没有其他依赖的PHP代码,我想包括在WordPress页面。所以很明显,任何不需要学习WordPress API的解决方案都是最好的。
当前回答
创建模板页面是正确的答案。为此,只需将其添加到您在主题文件夹内创建的页面中:
<?php
/*
Template Name: mytemplate
*/
?>
为了运行这段代码,您需要从后端选择“mytemplate”作为页面的模板。
请查看此链接以获得正确的详细信息https://developer.wordpress.org/themes/template-files-section/page-template-files/。
其他回答
你可以把你的文件命名为“newpage.php”——把它放在wp-content的主题目录中。您可以将其作为页面模板(参见http://codex.wordpress.org/Pages…),也可以将其包含在主题中的一个PHP文件中,例如header.php或single.php。
更好的是,创建一个子主题并把它放在那里,这样你就不用管你的主题代码,而且它更容易更新。
http://codex.wordpress.org/Pages#Creating_Your_Own_Page_Templates
除了创建一个自定义模板文件并将该模板分配给一个页面(就像在已接受答案的例子中),还有一种方法是使用模板命名约定,WordPress用于加载模板(模板层次结构)。
创建一个新页面,并使用该页的slug作为模板文件名(创建一个名为page-{slug}.php的模板文件)。WordPress将自动加载符合此规则的模板。
<?php /* Template Name: CustomPageT1 */ ?>
<?php get_header(); ?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
// Start the loop.
while ( have_posts() ) : the_post();
// Include the page content template.
get_template_part( 'template-parts/content', 'page' );
// If comments are open or we have at least one comment, load up the comment template.
if ( comments_open() || get_comments_number() ) {
comments_template();
}
// End of the loop.
endwhile;
?>
</main><!-- .site-main -->
<?php get_sidebar( 'content-bottom' ); ?>
</div><!-- .content-area -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>
只要你将你的php文件存储在wp-content文件夹中,即在一个主题或插件中,它只需要在文件中获得完整的WP-Power:
$parse_uri = explode( 'wp-content', $_SERVER['SCRIPT_FILENAME'] );
require_once( $parse_uri[0] . 'wp-load.php' );
在此之后,您可以以通常的方式使用WP函数。例如,我在我的歌词插件中使用它来创建一个可打印的个性化PDF文件。
如果你想创建自己的.php文件,并与WordPress交互,没有404头,并保持当前的永久链接结构,那么就不需要一个模板文件。
我发现这种方法效果最好,在你的.php文件中:
<?php
require_once(dirname(__FILE__) . '/wp-config.php');
$wp->init();
$wp->parse_request();
$wp->query_posts();
$wp->register_globals();
$wp->send_headers();
// Your WordPress functions here...
echo site_url();
?>
然后你就可以简单地执行任何WordPress功能了。此外,这假设您的.php文件位于您的WordPress站点的根目录中,也就是您的wp-config.php文件所在的位置。
这对我来说是一个无价的发现,因为我正在使用require_once(dirname(__FILE__))。' / wp-blog-header.php ');WordPress甚至告诉你,这是你应该使用的方法来集成WordPress函数,除了,它会导致404头,这是奇怪的,他们会让你使用这种方法。将WordPress与你的网站集成
我知道很多人已经回答了这个问题,并且已经有了一个公认的答案,但是这里有一个很好的方法,在你的WordPress站点的根目录(或者技术上你想在你的站点的任何地方)中创建一个。php文件,你可以浏览和加载没有404头文件!
更新:有一种方法可以使用wp-blog-header.php而没有404头,但这需要你手动添加头。类似这样的东西将在你的WordPress安装的根目录中工作:
<?php
require_once(dirname(__FILE__) . '/wp-blog-header.php');
header("HTTP/1.1 200 OK");
header("Status: 200 All rosy");
// Your WordPress functions here...
echo site_url();
?>
只是更新一下,这种方法需要的代码少了一些,但这取决于您使用哪种方法。