My site's pages are made up of content-node-type:page. I want to add advertisement above the H1's(in the top of page) and in the bottom ie., just above the footer.
Is there any trick beyond changing page.tpl? Will blocks do? But their width seem to be small.
My site is this one
Well actually you can do it with a combination of both. First define new regions (call them top_ad and bottom_ad or similar) in your template definition file (template.info) as follows :
regions[top_ad] = Top ad bar
regions[bottom_add] = Bottom ad bar
Then add the following in your page template (page.tpl.php) where you want to display these :
<?php if ($top_ad): ?>
<div id="top-ad" class="...">
<?php print $top_ad; ?>
</div>
<?php endif; ?>
....
<?php if ($bottom_ad): ?>
<div id="bottom-ad" class="...">
<?php print $bottom_ad; ?>
</div>
<?php endif; ?>
Then just create 2 blocks containing the banner content and put them in the top and bottom ad bar region respectively.
Related
I am using underscore to develop a wordpress theme.
I have a custom post type name project, thus I have, for instance, this url: http://a.site.local/projects/a-beauty/.
I have in my template-parts/ directory the file content-projects.
$ cat template-parts/content-projects.php
<h1>Project</h1>
When I browse http://a.site.local/projects/a-beauty/, I have my title but also the sidebar and the footer (even if they do not appear in my content-project.php nor in index.php).
Where are those widgets coming from / loaded ?
Add conditions to the header, footer and sidebar.
For whole custom post archive:
<?php if( !is_post_type_archive( 'project' ) ) : ?>
// wrap the code you don't want to show on that archive
<?php endif; ?>
For custom post only:
<?php if( !is_singular( 'project' ) ) : ?>
// wrap the code you don't want to show on the post
<?php endif; ?>
If you want to put the code you WANT to show, remove the '!' before condition.
P.S.
You can put the whole content in a condition, but keep the
</div><!-- #page -->
<?php wp_footer(); ?>
</body>
</html>
otherwise the page will break :)
Please share some more code from your project so we can easy to understand the real problem.
I am using a theme (Arcade Basic) in which the home page header image is resized differently from all other pages...
I would like to have the same header resizing on all pages included the home..
The resizing script is a .js script I don't want (I can't) to modify .
The resizing is triggered by the presence of the 'page' class in the body tag ..
# HOME PAGE
<body class="home blog only-on-home no-fittext basic">
# OTHER PAGES
<body class="page-template-default page page-id-1183 no-fittext basic">
If there anyway to add the 'page' class on the home page ?
Providing that you are using a specific page to act as your homepage and not just the default list of posts, you can add the following is_home() to check if you're on the homepage then add a class.
More information on the static front page setting.
<?php if ( is_home() ) : ?>
<body class="<?php body_class('homepage'); ?>">
<?php else : ?>
<body class="<?php body_class(); ?>">
<?php endif; ?>
you Can - but I can't say that treating all of your pages like a "page" won't come with bugs.
I would call the class something else.
find this in your header.php
<body <?php body_class('whatEverClassHere'); ?>>
The below code will display a single post (Recent post) on the home page or front page of my blog template and i want to remove the single post(Recent post) and replace it with some text say "older post " from page 2 onwards.
The problem the condition is_home() returns true when user clicks on page 2. since logically speaking it is a query request on home page . so i tried replacing is_home() with is_page(1) and also tired is_front_page() but nothing gives fruit
Here you can see the working code.
<? if(is_home()) : ?>
<div>
<h3>Recent Post</h3>
<? query_posts('posts_per_page=1');
while(have_posts()):the_post();?>
// iteration code here
<!-- End Single Post -->
<?php endwhile;wp_reset_query();?>
</div> <!-- if condition ends-->
<? else : ?>
<div>
<h3>Older Post</h3>
</div>
<? endif;?>
Replacing
(is_home())
with
(is_paged())
solved the problem.
I want to know how to set up a custom page template. My website is based on many different widths. example for some pages I use a div called <div class="content-wrap ninecol clearfix"> but for another page I use <div class="text-centered twelvecol clearfix">.
I need to create a template so that I can easy create new pages based on those templates.
Below is my static html code that Ive done in dreamweaver.
<div class="content-wrap ninecol clearfix"> <!--I want to make a template based on this div so I can just add new text in the future-->
<div class="content">
<h1 class="title">Om oss</h1>
<hr>
<div class="entry-content">
<h4>Vilka är Unified Sweden?</h4>
<p>Vi värnar starkt om vår unika företagskultur och ser den som vårt kraftfullaste
konkurrensmedel. Inom företaget har vi alltid arbetat hårt för att skapa den
stabila grund som vår företagskultur är byggd på. </p>
<p>All personal på Unified Sweden har många års erfarenhet av webbutveckling,
programmering, design och kundservice vilket gör oss unika då alla led inom kundbemötandet
vet exakt vad ni som företag behöver hjälp med.</p>
</div>
</div>
</div>
and this is what I came up with.
<?php
/*
Template Name: Test
*/
?>
<?php get_header(temp); ?>
<?php
// get_template_part( 'loop', 'index' );
?>
<div class="breadcrumbs">
<?php if(function_exists('bcn_display'))
{
bcn_display();
}?>
</div>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php the_content(); ?>
<?php endwhile; endif; ?>
</div><!-- content-wrap -->
</div><!-- #content -->
</div>
</div><!-- .main -->
<?php get_footer(); ?>
Thank you for any kind of help or support.
Are you saying that for each template you want a different style? If yes you need to give different name at div id and then you should edit your style.css
#namediv{ }
to setup custom page template (if i understand your question correctly)
you create your page template in the theme directory which is active
and use the header the way you did
<?php
/*
Template Name: Test
*/
?>
you replace Test by whatever you want to use for the name (this name can have space)
then in the admin, you can select the template to use for the page by going to Admin > Page Attributes > Templates
Your new custom template should appear here
edit (following op comment)
then you could check which template is being use with
is_page_template()
http://codex.wordpress.org/Function_Reference/is_page_template
from within the header.php that would then load a specific css file
side note: you might also want to check the codex page: http://codex.wordpress.org/Pages#Creating_Your_Own_Page_Templates as well as the dedicated wordpress stackexchange https://wordpress.stackexchange.com/
Template Name : Your page name
*/
you replace Test by whatever you want to use for the name (this name can have space) then in the admin, you can select the template to use for the page by going to Admin > Page Attributes > Templates Your new custom template should appear here
I want to add a static text (some sort of explanation/welcome text) on the very top of a view (over the filter) in Drupal 6.x with Views "2". I want this text appear only when the view is not filtered (i.e. on initial load of the page).
My problem is that the only place I figure out to make it work partially is in the views-exposed-form--MYVIEW.tpl.php. The problem is that when I place the code in this template, I don't know if the view is filtered or not, so the text appear on every single page! I don't have access to this info in that template so the only place this is available ($rows or $empty variables for example) is in views-view--MYVIEW.tpl.php.
But there I got an another problem. The order in witch it seams the variables are output are not the same as the order in witch they appeared in the file. For example, the $exposed variable content is render always on top, then $admin_links, $header and so forth.
<?php if ($header): ?>
<div class="view-header">
<?php print $header; ?>
</div>
<?php endif; ?>
<?php if (!$rows): ?>
<h3>This static text appear AFTER $exposed !!!</h3>
<?php endif; ?>
<?php if ($exposed): ?>
<div class="view-filters">
<?php print $exposed; ?>
</div>
<?php endif; ?>
<?php if ($attachment_before): ?>
<div class="attachment attachment-before">
<?php print $attachment_before; ?>
</div>
<?php endif; ?>
So even if I place my static content before this code, the filter form always appear on top!
I found the reason why is doing this: the exposed filter form is rendered as a part of the content-top <div></div>, but not the result (and $header, $footer, etc).
So is this by design? Do I miss something? How can I get my static text on the very top of the content-top!?
Well, after some tweaking and lecture on preprocess function in the theming system, I found a solution to my problem. I share it with you and if you find a more elegante approach; let me know!
What I did is this...
1) In the template.php file of the theme, I add two fonctions:
function YOURTHEME_preprocess_views_view__MYVIEW(&$variables) {
if ($variables['rows'] || $variables['empty']) {
$GLOBALS['dont_show_static_text'] = TRUE;
}
}
function YOURTHEME_preprocess_views_exposed_form__MYVIEW(&$variables) {
if ($GLOBALS['dont_show_static_text']) {
$variables['custom_flag1'] = TRUE;
}
}
So, if my views is showing some results ($row) or a blank result ($empty), then I set a flag to be use in the template file....
2) In my views-exposed-form--MYVIEW.tpl.php
...
<?php if (!$custom_flag1): ?>
<h2>Some static text here</h2>
<?php endif; ?>
...
And voilà! My static text is showing up only on the initial load of the view and it shows on TOP of the filter (not under!).
Hope this help someone else!