我想为我的WordPress博客创建一个自定义页面,将在其中执行我的PHP代码,同时保留整体网站CSS/主题/设计的一部分。

PHP代码将使用第三方api(因此我需要包括其他PHP文件)。

我该怎么做呢?

注:我没有特定的需要与WordPress API交互-除了包括某些其他PHP库,我需要我没有其他依赖的PHP代码,我想包括在WordPress页面。所以很明显,任何不需要学习WordPress API的解决方案都是最好的。


当前回答

<?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(); ?>

其他回答

任何答案都不包括如果你需要在WordPress主题之外添加一个PHP页面。就是这条路。

您需要包含wp-load.php。

<?php require_once('wp-load.php'); ?>

然后你就可以使用该页面上的任何WordPress功能了。

创建一个名为my-page.php的页面,并将其保存在主题目录下。 现在,编辑这个php文件,并在页面顶部写入以下一行

<?php /* Template Name: My Page */ ?>

在自定义页面定义行下编写PHP代码,您可以调用您的其他WP模板,该文件中的函数。

开始喜欢 <?php require_once (header。php); ?>或

无论你用什么方式来整合页眉和页脚以保持布局的一致性。

因为这是一个我的页面,你需要从WordPress管理面板创建一个页面。 转到Admin => Pages =>添加新的

添加一个页面标题,这取决于您如何编写自定义页面,您也可以添加页面主体(描述)。如果是在自定义php页面中编写的,则可以完全跳过描述。

在右侧,选择Template。 从下拉菜单中选择我的自定义页面。 你都准备好了!转到[wordpress][1]创建的slug(永久链接)并查看页面。

你会想看看WordPress的插件API。

这篇文章解释了如何“挂钩”和“过滤”到WordPress机制的不同部分,所以你可以在任何给定的时间在任何地方执行自定义PHP代码。这种挂钩、过滤和自定义代码创作都可以在任何主题的functions.php文件中进行。快乐编码:)

WordPress插件API WordPress挂钩/过滤数据库 WordPress PHPXHref by Yoast

创建模板页面是正确的答案。为此,只需将其添加到您在主题文件夹内创建的页面中:

<?php
    /*
    Template Name: mytemplate
    */
?>

为了运行这段代码,您需要从后端选择“mytemplate”作为页面的模板。

请查看此链接以获得正确的详细信息https://developer.wordpress.org/themes/template-files-section/page-template-files/。

试试这个:

/**
 * The template for displaying demo page
 *
 * template name: demo template
 *
 */