Include wordpress theme in a custom php page

2019-06-28 02:49发布

I need to include a custom PHP page in Wordpress.

So what I need to do is just to show this custom php page using the Wordpress theme installed on that Wordpress.

Does not mind which theme is up, the custom php page will have to be shown under any theme is installed in that moment.

How do I do it in Wordpress?

I am new to Wordpress development.

Thanks

标签: php wordpress
4条回答
beautiful°
2楼-- · 2019-06-28 03:00

You could do this easily with a page template. WordPress allows you to create page templates which can be assigned to a page via the 'Page Attributes' panel within the page editor. These templates are php files inside your theme directory which begin with some code like (see this page in The Codex for more info):

<?php 
/*
Template name: Custom PHP Page
*/
?>

<?php // begin custom PHP page ?>

Typically a template is a variation on the regular theme files (such as page.php) and would call the get_header() and get_footer() functions and have an instance of the loop. However if you simply want to use a custom PHP page, then all you need to do is create the file you want inside the current theme directory and add the above code at the very top of the file.

To output the custom PHP page on your site, you would need to add a new page via the admin area and then assign your new page template to this page.

Alternatively, if you want to include a custom PHP page inside an existing theme file, you use the code:

<?php include(TEMPLATEPATH . '/includes/file.php'); ?>

in this case your custom PHP file would be located inside a directory called 'includes' within your current theme directory.

Tim.

查看更多
Root(大扎)
3楼-- · 2019-06-28 03:06

It's not that difficult. Here's what you need:

Once you include the main wordpress blog header, the entire armamentarium of wordpress functions is available to you, which allows you to get the active theme's directory. Once you get that, just include the header and the footer of the theme.

// If title is not displayed before loading the header, Wordpress displays "Page not found" as the title

echo "<head>
<title>Your page title</title>
</head>";

// Include the Main Wordpress blog header
include $_SERVER['DOCUMENT_ROOT']."/wp-blog-header.php";

//Now, you need to get the active theme's folder, and get a relative path to that folder

$homeurl=home_url();
$ddir= get_bloginfo( 'template_directory');
$current_theme_relative_path=substr_replace($ddir, "", 0, strlen($homeurl));
//echo "<br/>The relative path to the currently active theme is ".$current_theme_relative_path;

//Once you have the path, include the header and footer, adding your custom php code in between.
// Include the specific theme header you need

include $_SERVER['DOCUMENT_ROOT'].$current_theme_relative_path."/header.php";

// Your custom PHP code STARTS here

// Add anything you want to display to the user
echo "
<h2>
Your form has been submitted
</h2>";

// END of custom code


?> 



<?php
}

// Now end with the theme's footer
include $_SERVER['DOCUMENT_ROOT'].$current_theme_relative_path."/footer.php";

?> 
查看更多
何必那么认真
4楼-- · 2019-06-28 03:13

Creating a custom php page that will be able to be viewed in any theme (and have the theme applied) would be considerably difficult.

Each wordpress page calls specific theme functions of that particular theme, as well as referencing files of that theme to generate header, footer, css files, javascript files, etc.. Your custom page would need to plan for all of these contingencies, for each possible theme used.

Here's a alternative solution: inject PHP code directly into a standard wordpress page via this plugin http://wordpress.org/extend/plugins/allow-php-in-posts-and-pages/

Meaning: you make a normal wordpress page, but are able to add php to it. When this page is rendered, the proper page template is used, and all the theme references are taken care of for you.

查看更多
姐就是有狂的资本
5楼-- · 2019-06-28 03:15

Was very helpfull (even if dated of 2011-13)

Also, as a thank you, i'm sharing the version i made

it's usefull if your wordpress folder is not located at ROOT

PasBin Link - wordpress custom php page

just change the value of $wplocalpath in :

// Wordpress path (if wordpress is not located at ROOT

// $wplocalpath="/Wordpress1";

查看更多
登录 后发表回答