Drupal 6: How to add a new region to a theme - drupal

I added a new region line to my .info file under /sites/all/themes/[theme] directory. However when I look at the Blocks page, the region is not visible, nor is it a selectable item from the dropdown menus. I've cleared the cache as well. What am I missing?

If you have multiple themes enabled, make sure you are looking at the correct theme on the block configuration page.
For example, if you have custom_theme and garland enabled, there is a block configuration page for each.
Go to http://www.example.com/admin/build/block/list/custom_theme to see blocks for your custom_theme
Go to http://www.example.com/admin/build/block/list/garland to see blocks for the garland theme
etc... for all enabled themes

When you say you cleared the cache, are you actually referring to the Theme Registry? Or did you really clear the database cache? If you just cleared the theme registry, it won't reflect the changes to the theme's .info file. You can clear the cache by...
Use the "clear all cached data" link or button located at "Administer > Site configuration > Performance".
With the devel block enabled (comes with devel module), click the "Empty cache" link.
Simply visit the theme select page at "Administer > Site building > Themes".
List from Drupal.org
It's also possible the browser itself is caching pages. You could clear your browser cache, as well as the Drupal cache, just to be absolutely sure.
If none of that works, could you post your region assignment from the .info file?

I'm presuming Drupal 6 here, but in your andytheme.info, did you add the region like this (look at the bottom line):
regions[left] = Left sidebar
regions[right] = Right sidebar
regions[content] = Content
regions[header] = Header
regions[footer] = Footer
regions[andyregion] = Andy Region
Remember that you have to add all the regions if you add any in your .info file--they won't be inherited from your base theme.
And, in your page.tpl.php, did you add the region variable to be printed somewhere? Something like this?
<div class="region andyregion"><?php print $andyregion ?></div>
Of course, it would be surrounded by whatever and other stuff you'd want. Then flush the cache and see if it's in the blocks.
Andy-

The following assumes you use Zen as the base template.
Open up /sites/[yoursite]/themes/[yourtheme]/[yourtheme].info file and scroll down to where there are loads of regions[xxx] = yyy
The name in brackets is the machine name of the region. The text after the equals sign is a descriptive text used on the admin/structure/blocks page.
Open up /sites/[yoursite]/themes/[yourtheme]/templates/page.tpl.php and adding <?php print render($page['MACHINE-NAME']); ?> where you want the region to appear.

Related

add other then default footer in WordPress v6.0

I am new in WordPress,
I want to know how to add footer other then default footer
( example: Footer file name - home-footer.php and need to use for home page, same as contact-us-footer.php for contact us page ). let me how i can achieve this.
if you are adding your files in theme or WordPress core files then this will automatically remove when your WordPress will be updated unless you creat child theme so just better to create to footers with any page builder I recommend elementor and then hide that with page id you will find that in the body tag of every page like this
.page-id-111 .footer{
display:none;}
Let me know if you don't understand anything
You have to name the file footer-home.php. Then you can call this footer in the page template (i.e. page-home.php) using get_footer('home').
Wordpress will use the right file, if it is named correctly starting with footer-*.php.

Trying to change CSS on New-Post page (WP-admin)

I’m inside the New Post page on WP-Admin, where you can create a new post.
At the right column, there’s the category selector, in which you select the category for that new post.
I have something like 15 categories, and therefore the category box is showing with a scrolling bar. Since I need to automate some post creation, I need all the categories to be visible right away, without having to scroll.
So I found the css file that manages the height of the category box (it’s inside /wp-admin/css/edit.css and //wp-admin/css/edit-rtl.css) and there I changed the CSS files to allow a bigger height by default on that box.
However when I open the new post page, it still shows the small box in categories, and when I see the CSS rule, the change I made is not visible. It’s like the CSS is cached or something. I already made sure that my browser is not caching it.
The problem I think it’s because the CSS rules are not pulled directly from CSS files, but from this file:
http://www.website.com/wp-admin/load-styles.php?c=0&dir=ltr&load%5B%5D=dashicons,admin-bar,buttons,media-views,common,forms,admin-menu,dashboard,list-tables,edit,revisions,media,themes,about,nav-menu&load%5B%5D=s,widgets,site-icon,l10n,wp-auth-check&ver=4.7
That file seems to go and gather the CSS information from some place (which I assumed was the CSS files in the wp-admin/css/ folder, in which I could find the exact same CSS rules that were applied to the category box) but for some reason, it’s not retreiving the updated CSS file. Or something else is happening (Server side caching the PHP response and therefore retreiving all the time the old response?)
I wouldn't recommend tampering with core admin files, as any changes you make could be lost from a WordPress update.
The proper way to do it is through a custom function added to your theme or child-theme functions.php file:
add_action('admin_head', 'custom_admin_css');
function custom_admin_css() {
echo '<style>
/* remove scrollbar from categories panel */
.categorydiv div.tabs-panel { max-height: none !important; }
</style>';
}
Another options that will allow you to have CSS for individual pages is to use this OH header/footer plugin. Once you install the plugin you can then add your CSS in the header textarea of the pages admin. Just make sure you enclose your CSS within a <style></style> tag.

How to name different footer files which can be selected in wp-admin's page editors

Seen this done before in other templates, just wondering if anyone here knows how to do this.
I have one template I have created, and two hard coded footer files. footer.php and footer-1.php.
I want to be able to select between using either footer.php or footer-1.php in wp-admin via the pages editor.
So far all I have found so far is adding something like this to the top of the file:
Template Name: footer_1
However, this requires that a secondary header and other files are also included, it won't allow just a change of footer alone.
Can anyone tell me how I can name different footer files so that wordpress detects them in wp-admin and allows me to switch between them.
I do not require adding widgets to these, there is simply two styles of footer and they have no correlation to page or category to hard code, they have to be selected in the admin area manually.
To dynamically change your footer with a admin editor option, do the following:
Open the page you want to customize in editor
Locate Custom Fields meta box in editor (If it is not visible tick the box Custom Fields in the Screen options dropdown at top right)
Select Add Custom Field in Custom Fields meta box
Enter footer_template in Name field and an arbitrary id in the Value field
Select Update to save your settings
Open your theme folder and locate page.php file
Open page.php file and locate the very last line <?php get_footer(); ?>
Delete the line in step 7 and add the following:
<?php
$scriptonomy_footer_meta = get_post_meta(get_the_ID(), 'footer_template', true);
get_footer($scriptonomy_footer_meta); ?>
Save and close page.php file
Make a duplicate of footer.php and name it footer- plus any arbitrary id you chose in step 4, ie: footer-1.php or footer-two.php
Now you can assign any custom footer to any page. You can do the same for the header as well using this technique.

Fields disappear for a specific theme

I'm new to drupal, so sorry in advance or any mistake, feel free to correct.
I don't really know what exactly that I have done cause the problem, but content's fields (for all content types)
is not being shown (the pages are empty beside the title).
When I edit the information it appears.
In the past the information appeared.
It happens only for a specific theme (business_theme), for other themes (drupal's default) the info' appears.
any idea or help will be great
You need to assign Main page content block to a region that already exists in your theme.
First; Declare the region in your theme's .info file.
regions[content] = Main Content
Second; Print the region inside your page.tpl.php file.
print render($page['content']);
Last; Assign the Main page content to the region from the Blocks manager page. ?q=admin/structure/block
After further investigation, It seems that when our own theme is being the default, no node.tpl.php is being called (does that makes sense?).
I add the code
<?php
print '<pre>';
var_dump(get_defined_vars());
print '</pre>';
?>
to each node*.tpl.php file and cleared all caches.
when our theme is working no changes appeared,
when enabling batrick theme the added code was working.
This happens only in the page itself, i.e. when entering to localhost/drupal/node...
in the front page the added code worked for both themes.
any ideas?
tnx

admin template selection is missing on page creation in wordpress 3.2.x

I am using WordPress 3.2.1 ,
Page template selection drop down is missing on Pages (Add,Edit)
wp-admin > Pages >Add New > Page Attributes
I Edit the Template Page Default page as below code
/*
Template Name: New Template
*/
But still the template drop down no visible , my older version of WordPress it display by default.
Following is the screen shot for more idea
I solved this problem solved by adding the typical following code:
/*
Template Name: Custom
*/
Don't add any spaces after Name:
It'll work if you use template name: as well.
It might help someone: check if your index.php file is in place.
If it's not there, wordpress treats the template as corrupt and it doesn't display the template selection.
This should be simple to troubleshoot. The requirements for the page template to work are straight forward:
The template needs the page title in the top of the file like you've shown (the title needs to be wrapped in a PHP tag, you probably just didn't add it with your example bu I want to make sure you havne't overlooked it):
<?php
/*
Template Name: Custom
*/
?>
The second requirement is that the file is in the root of the theme folder.
With those two requirements in place, it should work. If it isn't working you nave a few possible issues. I list a few off the top of my head:
You might need to re-install WordPress in-case a file was corrupted
during your last update.
It's possible someone has altered the WP-Admin layout using users
roles.
That's all I can thing of at the moment, let me know how it turns out.
I had the same issue. It actually turned out to be a missing style.css file within the template directory in my case.
This happens because the get_post_templates() in class-wp-theme.php first checks for errors. If it finds any then it returns an empty array (no templates are displayed).
A side effect of this is that saving a page would clear the existing template and use the page.php instead.
So in short if the errors() method of your theme returns any errors then no templates dropdown.
hope that helps someone.
Same issued, I found out that in appearance panel in your WordPress dashboard the stylesheet is missing. You shouldn't rename the style.css in your theme folder.
Not sure if this will help anyone, but we solved the problem by disabling our theme and re-enabling it again. We had some other theme folders in the theme directory that we weren't using so we deleted those out as well. good luck, it's a really random problem to solve!
yeah!template dropdown not showing because you have no template So how to solve this::---
1 create template folder in theme
2 create a template in this folder
like:-
<?php /* Template Name: Home */ echo "template"; ?>
and check-in page dropdown will be there.

Resources