我想为我的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页面。就是这条路。
您需要包含wp-load.php。
<?php require_once('wp-load.php'); ?>
然后你就可以使用该页面上的任何WordPress功能了。
其他回答
如果你像我一样,有时你希望能够在CMS中不存在的页面中引用WordPress函数。这样,它仍然是后端特定的,不会被客户端意外删除。
这实际上很简单,只需使用PHP require()包含wp-blog-header.php文件即可。
下面是一个使用查询字符串为任何帖子生成Facebook Open Graph (OG)数据的示例。
以http://example.com/yourfilename.php?1这样的链接为例,其中1是我们想为其生成OG数据的帖子的ID:
现在在yourfilename.php的内容中,为了方便起见,它位于WordPress根目录中:
<?php
require( dirname( __FILE__ ) . '/wp-blog-header.php' );
$uri = $_SERVER['REQUEST_URI'];
$pieces = explode("?", $uri);
$post_id = intval( $pieces[1] );
// og:title
$title = get_the_title($post_id);
// og:description
$post = get_post($post_id);
$descr = $post->post_excerpt;
// og:image
$img_data_array = get_attached_media('image', $post_id);
$img_src = null;
$img_count = 0;
foreach ( $img_data_array as $img_data ) {
if ( $img_count > 0 ) {
break;
} else {
++$img_count;
$img_src = $img_data->guid;
}
} // 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" />
<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中删除它,因此这似乎是一个更干净的选择。
2017年编辑: 请注意,这种方法现在已被弃用
关于2016年以上的WordPress安装,请参阅如何将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: mytemplate
*/
?>
为了运行这段代码,您需要从后端选择“mytemplate”作为页面的模板。
请查看此链接以获得正确的详细信息https://developer.wordpress.org/themes/template-files-section/page-template-files/。
<?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(); ?>
创建一个名为my-page.php的页面,并将其保存在主题目录下。 现在,编辑这个php文件,并在页面顶部写入以下一行
<?php /* Template Name: My Page */ ?>
在自定义页面定义行下编写PHP代码,您可以调用您的其他WP模板,该文件中的函数。
开始喜欢 <?php require_once (header。php); ?>或
无论你用什么方式来整合页眉和页脚以保持布局的一致性。
因为这是一个我的页面,你需要从WordPress管理面板创建一个页面。 转到Admin => Pages =>添加新的
添加一个页面标题,这取决于您如何编写自定义页面,您也可以添加页面主体(描述)。如果是在自定义php页面中编写的,则可以完全跳过描述。
在右侧,选择Template。 从下拉菜单中选择我的自定义页面。 你都准备好了!转到[wordpress][1]创建的slug(永久链接)并查看页面。