我想为我的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的解决方案都是最好的。
当前回答
在WordPress中添加PHP页面到页面模板中的主题或子主题文件夹的最佳方法。
如何在WordPress中创建页面模板。
创建一个名为template-custom.php的文件,并将其放在/wp-content/theme/my-theme/目录下。
<?php
/*
* Template Name: Custom Template
* Custom template used for custom php code display
* @package Portafolio WordPress Theme
* @author Gufran Hasan
* @copyright Copyright templatecustom.com
* @link http://www.templatecustom.com
*/
?>
<?php get_header(); ?>
<?php
//write code here
?>
<?php get_footer(); ?>
欲知详情
其他回答
你会想看看WordPress的插件API。
这篇文章解释了如何“挂钩”和“过滤”到WordPress机制的不同部分,所以你可以在任何给定的时间在任何地方执行自定义PHP代码。这种挂钩、过滤和自定义代码创作都可以在任何主题的functions.php文件中进行。快乐编码:)
WordPress插件API WordPress挂钩/过滤数据库 WordPress PHPXHref by Yoast
Adam Hopkinson给出的被广泛接受的答案是:创建页面的方法不是完全自动化的!它需要用户在WordPress的后端手动创建一个页面(在wp-admin破折号中)。问题是,一个好的插件应该有一个完全自动化的设置。它不应该要求客户端手动创建页面。
另外,一些其他被广泛接受的答案涉及到在WordPress之外创建一个静态页面,然后只包含一些WordPress功能来实现主题页眉和页脚。虽然这种方法在某些情况下可能有效,但如果不包含所有功能,则会使这些页面与WordPress集成非常困难。
我认为最好的、完全自动化的方法是使用wp_insert_post创建一个页面,并将其驻留在数据库中。可以在这里找到一个例子和一个关于这个的很好的讨论,以及如何防止用户意外删除页面:wordpress-automatic -creating-page
坦率地说,我很惊讶这个方法没有被提到作为这个流行问题的答案(它已经发布了7年)。
除了创建一个自定义模板文件并将该模板分配给一个页面(就像在已接受答案的例子中),还有一种方法是使用模板命名约定,WordPress用于加载模板(模板层次结构)。
创建一个新页面,并使用该页的slug作为模板文件名(创建一个名为page-{slug}.php的模板文件)。WordPress将自动加载符合此规则的模板。
你可以在你的活动主题文件夹下添加任何php文件 (/wp-content/themes/your_active_theme/)然后你可以从wp-admin中添加新页面,并从页面中选择这个页面模板 模板的选择。
<?php
/*
Template Name: Your Template Name
*/
?>
还有一种方法,你可以把你的文件 functions。php然后创建短代码然后你可以把它 在页面中像这样进行短代码。
// CODE in functions.php
function abc(){
include_once('your_file_name.php');
}
add_shortcode('abc' , 'abc');
然后你可以像这样在wp-admin侧页中使用这个短代码 (abc)。
<?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(); ?>