猿问
下载APP

如何将PHP页面添加到WordPress?

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


PHP代码将使用第三方API(所以我需要包含其他PHP文件)


我该如何做到这一点?


NB我没有特别需要与Wordpress API交互 - 除了包括我需要的某些其他PHP库我在PHP代码中没有其他依赖项我想要包含在WP页面中。显然,任何不需要学习WP API的解决方案都是最好的。


SMILET
浏览 109回答 3
3回答

偶然的你

您无需与API交互或使用插件。首先,复制post.php或page.php在您的主题文件夹(下/wp-content/themes/themename/)。将新文件重命名为templatename.php(其中templatename是您要调用的新模板)。要将新模板添加到可用模板列表,请在新文件的顶部输入以下内容:<?php/*Template Name: Name of Template*/?>您可以修改此文件(使用PHP)以包含其他文件或任何您需要的文件。然后在WordPress博客中创建一个新页面,在页面编辑屏幕中,您将在右侧的“ 属性”窗口小部件中看到“ 模板”下拉列表。选择新模板并发布页面。您的新页面将使用中定义的PHP代码 templatename.php资料来源:https://developer.wordpress.org/themes/template-files-section/page-template-files/#creating-custom-page-templates-for-global-use

拉丁的传说

如果你想创建自己的.php文件,并在没有404 Headers的情况下与Wordpress交互并保持当前的固定链接结构,那么不需要该页面的模板文件,我发现这种方法最适合你的.php文件:<?php&nbsp; &nbsp; require_once(dirname(__FILE__) . '/wp-config.php');&nbsp; &nbsp; $wp->init();&nbsp; &nbsp; $wp->parse_request();&nbsp; &nbsp; $wp->query_posts();&nbsp; &nbsp; $wp->register_globals();&nbsp; &nbsp; $wp->send_headers();&nbsp; &nbsp; // Your Wordpress Functions here...&nbsp; &nbsp; echo site_url();?>在此之后,您可以简单地执行任何wordpress功能。此外,这假设您的.php文件wp-config.php位于您的文件所在的wordpress站点的根目录中。对我而言,这是一个无限的发现,因为我使用require_once(dirname(__FILE__) . '/wp-blog-header.php');的时间最长,因为Wordpress甚至告诉你这是你应该用来集成Wordpress函数的方法,但是,它会导致404标题,这是他们想要的奇怪你使用这种方法。 https://codex.wordpress.org/Integrating_WordPress_with_Your_Website我知道很多人已经回答了这个问题并且它已经有了一个可接受的答案,但是对于wordpress网站根目录中的.php文件(或技术上你想要在你网站上的任何地方),这是一个很好的方法,你可以浏览到并加载没有404标题!编辑这里只是一个快速更新。有一种方法可以在wp-blog-header.php没有404标题的情况下使用,但这需要您手动添加标题,这样的内容将在您的wordpress安装的根目录中起作用:<?php&nbsp; &nbsp; require_once(dirname(__FILE__) . '/wp-blog-header.php');&nbsp; &nbsp; header("HTTP/1.1 200 OK");&nbsp; &nbsp; header("Status: 200 All rosy");&nbsp; &nbsp; // Your Wordpress Functions here...&nbsp; &nbsp; echo site_url();?>只是为了更新所有这一点,这种方法需要的代码少一些,但是由你决定使用哪一个。

潇湘沐

如果您像我一样,有时您希望能够在CMS中不存在的页面中引用WordPress功能。这样,它保持后端特定,不会被客户端意外删除。这通过wp-blog-header.php使用php 包含文件实际上很简单require()。这是一个使用查询字符串为任何帖子生成Facebook OG数据的示例。以一个链接为例,http://example.com/yourfilename.php?1其中1我们要生成OG数据的帖子的ID 在哪里:现在在其内容中yourfilename.php,为方便起见,它位于根WP目录中:<?php&nbsp; &nbsp; require( dirname( __FILE__ ) . '/wp-blog-header.php' );&nbsp; &nbsp; $uri = $_SERVER['REQUEST_URI'];&nbsp; &nbsp; $pieces = explode("?", $uri);&nbsp; &nbsp; $post_id = intval( $pieces[1] );&nbsp; &nbsp; // og:title&nbsp; &nbsp; $title = get_the_title($post_id);&nbsp; &nbsp; // og:description&nbsp; &nbsp; $post = get_post($post_id);&nbsp; &nbsp; $descr = $post->post_excerpt;&nbsp; &nbsp; // og:image&nbsp; &nbsp; $img_data_array = get_attached_media('image', $post_id);&nbsp; &nbsp; $img_src = null;&nbsp; &nbsp; $img_count = 0;&nbsp; &nbsp; foreach ( $img_data_array as $img_data ) {&nbsp; &nbsp; &nbsp; &nbsp; if ( $img_count > 0 ) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;&nbsp; &nbsp; &nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ++$img_count;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $img_src = $img_data->guid;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; } // end og:image?><!DOCTYPE HTML><html><meta charset="UTF-8"><meta name="viewport" content="width=device-width, user-scalable=yes" /><meta property="og:title" content="<?php echo $title; ?>" /><meta property="og:description" content="<?php echo $descr; ?>" /><meta property="og:locale" content="en_US" />&nbsp;&nbsp;<meta property="og:type" content="website" /><meta property="og:url" content="<?php echo site_url().'/your_redirect_path'.$post_id; ?>" /><meta property="og:image" content="<?php echo $img_src; ?>" /><meta property="og:site_name" content="Your Title" /></html>你有它:使用帖子的实际图像,摘录和标题为任何帖子生成共享模型!我们可以创建一个特殊的模板并编辑永久链接结构来执行此操作,但由于它只需要一个页面,因为我们不希望客户端从CMS中删除它,这似乎是更清洁的选项。
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答