I want to create a php page on the website (CMS Wordpress), but I do not understand how to incorporate the template files, for example
<?php get_header(); ?>
And other content. I know that it is possible to create pages through the admin interface, but I do not fit... if you try to create a page of template files and then go for it the direct link:
http://local/wp-content/themes/mytheme/mypage.php
with pre-embedding the code
<?php get_header(); ?>
it will fail like:
Fatal error: Call to undefined function get_header()
What should I do?
How i can "say" this CMS that the page is important for me, and it performs some functionality? That is, in fact, get the full url to her and that did not give out errors…
You need to include wp-load.php in your script to use any of WP functions:
<?
require_once('../../../wp-load.php');
get_header(); ?>
try that. xD
Related
I want my script to load only in one certain post page in my blog.
Example page: www.name.com/this-is-cool-post/
How can i call my script if for example my script is in another .php file?
<?php if(is_page('this-is-cool-post')){ ?>
<?php include("myscript.php"); ?>
<?php } ?>
this is not working for me and i don't know where to problem is :S
This may not be the most programmatic way of doing it, but how about creating a custom blog post template, call it blog-specific.php or whatever you want, add the following to the top of it:
<?php
/*
Single Post Template: [Temp Name]
Description: Description of template
*/
?>
Then add your script (<?php include("myscript.php"); ?>) only to this template:
You should then be able to change the template of a particular post in the Single Post Template dropdown option when editing a post:
I think the problem is the location of your script.
If you work on a theme, try to include your script like this
include get_template_directory() . "/path_to_ur_script/script.php";
I hope that help u.
I am working with wordpress.
I see that in my index.php there is a code called <?php get_footer(); ?> ..and I get it, it's simple. This code will pull footer.php.
It seems to me that the get_footer() is built in to wordpress that pulls anything that is named footer.php.
I have created my own page called page.php.
I want to be able to 'get' this page and show in my php code enabled 'sidebar widget'.
I have tried to paste this code, and I am more that certain that its wrong:
<?php
echo file_get_contents("side.php");
?>
What code would I need if I want my custom page called page.php to be shown?
The WordPress way to load a template file is get_template_part():
get_template_part( 'page' );
// loads page.php from the theme directory.
Note that page.php is a special filename in WordPress themes, this file is loaded as a template if a page is displayed. You should give your file a different name if you want to prevent this.
Details are in the already mentioned template-hierarchy.png
Edit:
After rereading your question: If your page.php is not from a template, but in a folder of a plugin you are developing as a sidebar widget, the also already mentioned include('page.php'); would be the way to go.
page.php is a special page of wordpress. See this diagram.
https://developer.wordpress.org/files/2014/10/template-hierarchy.png.
The wordpress way is to create a own template.
https://developer.wordpress.org/themes/template-files-section/page-template-files/page-templates/
try the following
include ('side.php');
OR
require ('side.php');
you may also use include_once / require_once
Please use require_once or include in php file like below.
require_once('side.php');
or
include ('side.php');
try this,
require( dirname( __FILE__ ) . '/page.php' );
if your page is in same level where is your parent page.
Add this code in your php page
<?php include_once('filename.php'); ?>
There are so many options that you can chose:
You can use get_template_part():
From the Docs: WordPress now offers a function, get_template_part(),
that is part of the native API and is used specifically for reusing
sections - or templates - of code (except for the header, footer, and
sidebar) through your theme.
Other solution is require_once() or include_once().
But if i compare both function include_once() is faster than to require_once() for smaller application.
For better understanding about the require and include you can read this Question.
I'm building a website that uses Wordpress as the CMS and is built with Yii framework. All the business logic works fine. Most visible pages are filled with content from Wordpress admin and only the user profile section is built with Yii.
My problem is that I would like to reuse the layout of the wordpress pages in the Yii app. Initially I tried to do it in a blank PHP file and everything worked as expected with this code:
<?php
require( '/var/www/wordpress/wp-load.php' );
get_header();
?>
<div>
some content here
</div>
<?php
get_footer();
?>
The problem is that when I make a new layout in Yii so that I can reuse the header and footer it crashes and displays blank page. I tried both with require('/var/www/wordpress/wp-blog-header.php'); and require( '/var/www/wordpress/wp-load.php' );.
This is the code I use to load wordpress functionality in Yii but unfortunately it does not work.
<?php /* #var $this Controller */
spl_autoload_unregister(array('YiiBase','autoload'));
define('WP_USE_THEMES', true);
require('/var/www/wordpress/wp-blog-header.php');
//require( '/var/www/wordpress/wp-load.php' );
get_header();
spl_autoload_register(array('YiiBase', 'autoload'));
?>
Any help would be much appreciated. Ideally I would like to use get_header() and get_footer() wordpress functions in Yii layouts/views.
Thanks
UPDATE
I checked Apache logs and it seems that the following error is logged when I try to open the page in my browser: PHP Fatal error: Call to a member function get() on a non-object in /var/www/wordpress/wp-includes/query.php on line 27
Also when I comment out the get_header(); row the page opens without any errors (and without any styling too). So something prevents get_header() to work property in Yii.
I ended up adding require( '/var/www/wordpress/wp-load.php' ); in the Yii's index.php file just before the initialization code. Then I was able to use all WordPress functions in my project. This helped me reuse the header and footer layout from WordPress in Yii using the get_header() and get_footer() functions.
I need to reference a particular functions.php file, that can be stored in the template directory of my Joomla template. WordPress seems to include this, but if I do something like:
Include the functions file
<?php require_once ( 'functions.php' ); ?>
In the functions.php:
<?php
function displaySomething() {
echo "Hello World";
}
?>
and then in the templates index.php:
<?php displaySomething(); ?>
The template breaks/is blank. For aguements sake, I just want to have a single referencable php case function.
Try this -
<?php require_once ($this->baseurl.'/templates/'.$this->template.'/functions.php'); ?>
However, chances are that you shouldn't do it this way. In general it's not a good idea to hard code anything in to your template because that removes the ability to select the pages that you want the code to be executed on and it removes the ability to easily edit what ever the code is doing.
You really should put your code in a module or plugin. Putting it in a module makes it easy to select the pages you want the code on, turn it on or off globally, or to change the output easily. Putting it in a plugin would make it easy to put it on pages based on one of the Joomla event triggers, and to turn it on or off globally.
For the amount of time it would take to turn it in to an extension, it is well worth it.
Try with (using the constant JPATH_BASE):
<?php
#Loading functions
require_once (
JPATH_BASE."/templates/{$this->template}/functions.php"
);
?>
I want to create a special php and javascript page, but I want it to use my Wordpress theme that is already installed. How to do that?
Thanks
You can do this by including the header and footer from wordpress, and putting your own code in the middle. Such as this:
include $_SERVER['DOCUMENT_ROOT']."/wp-blog-header.php";
include $_SERVER['DOCUMENT_ROOT']."/wp-content/themes/[YOUR THEME]/header.php";
// your code goes here
include $_SERVER['DOCUMENT_ROOT']."/wp-content/themes/[YOUR THEME]/footer.php";
I haven't tested this on newer versions of wordpress, but in the past that has worked. You can even include the wpconfig file if you want to use some of those variables, such as the database connection information.
Hope this helps.
See Integrating WordPress with Your Website « WordPress Codex on how to pull the header and other includes into a static php page/file, like:
<?php
require('/the/path/to/your/wp-blog-header.php');
get_header();
?>
<?php
define('WP_USE_THEMES', FALSE);
require('./wp-blog-header.php');
get_header();
query_posts('showposts=1');
get_footer();
?>