Wordpress edit individual microsite's theme - wordpress

I have a Franchise site that I am working on. We setup at least 15 locations, and the microsite is serving well except for the fact of adding custom elements to the individual franchise locations.
How do I edit an individual microsite without having to mess with the "Network Admin" theme editor?
The Franchisee wants a block to be changed on the homepage: 'home-template.php'
Is there a way I can add the editor to the microsites?
Also, is there a way I can edit the CSS for an individual microsite?
Thank you,
Kyle
P.S. If anyone requires more information, please leave a comment, and I'll edit this question immediately.
Edit:
Here is how the block in question is being loaded from the template:
<div class="col span_4_of_12">
<?php $posts = get_posts( "category_name=home_04" ); ?>
<?php if( $posts ) : ?>
<?php foreach( $posts as $post ) : setup_postdata( $post ); ?>
<div id="box-personal_svc_bg">
<div class="sq-label_box_gr">
<h1><a href="<?php the_permalink();?>">
<?php the_title();?>
</a></h1>
</div>
</div>
<?php endforeach; wp_reset_postdata(); ?>
<?php endif; ?>
</div>
So, the franchisee wants to change the picture for that block (which is a background css attribute, and they also want to change the link - which I believe could be changed by just changing the category of the page/post to home_04, right?)
Even though one problem was partially resolved, is there still a way I can add an editor to each microsite?

Related

Wordpress the_content / post is empty

I'm building my own template for Wordpress and I'm bumping into an issue when displaying the content of a post.
I have already built one page template for the home page and it works fine. The loop outputs what I want to display. Now I'm building the template to display an article but the loop doesn't return anything.
Here is the code of the page template:
<?php
/*
Template Name: PAGE
*/
define( 'WP_USE_THEMES', false );
get_header();
?>
<div class="wrapper">
<div class="sidebar">
<?PHP get_sidebar(); ?>
</div>
<div class="main">
<div class="section group">
<div class="col col12-12">
<span>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php endwhile; else : ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>
</span>
</div>
</div>
</div>
</div>
<?php get_footer(); ?>
This results in displaying the "sorry, no posts matched your criteria" message when i click on one of the links on the homepage. The strange thing is that the page really exists (it has ID=26 as you'll see here below):
<?php
$post = get_post(26);
$title = $post->post_title;
echo $title;
?>
This works and displays the expected title. I have tried get_the_ID(); to get the post ID but it returns an empty variable.
There is probably something missing in my template but I can't figure out what.
Any idea?
Thanks
I have found the issue and it had nothing to do with the template itself.
I discovered what's wrong by using one of the standard Wordpress themes (twentyfifteen) where every post led me to a 404 even if I clicked on a post from the Admin UI. I swapped back permalink structure to the ?p=123 option and there everything working. Definitely a permalink structure problem.
The problem was coming from the polylang plug-in. I'm using a network of wordpress site for which I have made this plug-in available. I did not need this plug-in for this particular site but somehow it needed to be active anyway. So I activated polylang and configured it to have only one language and now it works.
Got new gray hair in the process but if that can help anyone...
Thanks for your help!
Laurent
I don't think, that this template can output any posts like this. For WordPress
/*
Template Name: PAGE
*/
indicates: this is a page-template which you can asign to the content of a page but not to a post.
When you want to show a specific post on such a page you will have to:
Asign the template to the page in WP-backend
Add a new query to the template to show the post
Like:
<?php
/*
Template Name: PAGE
*/
define( 'WP_USE_THEMES', false );
get_header();
?>
// The new Query
$args = array (
'p' => '26',
);
// The Query
$query = new WP_Query( $args );
<div class="wrapper">
<div class="sidebar">
<?PHP get_sidebar(); ?>
</div>
<div class="main">
<div class="section group">
<div class="col col12-12">
<span>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php endwhile; else : ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>
</span>
</div>
</div>
</div>
</div>
<?php get_footer(); ?>
But as this is very complicated I would recommend to:
delete the /* Template Name: PAGE */ from the template
save it as single.php or more specific as single-26.php
link to the desired post in your wp-menu

Wordpress: the_content() not showing

I installed a plugin called Admin Guide Dashboard Widget. The idea is that it adds a widget to the WordPress Control Panel (the first screen that shows up upon login). On this widget you choose a blog/post category and then every post you write with that category shows up in that widget.
Well it didn't work at all. The widget showed all of my posts. I tried to change the category on the widget, but I just couldn't get it to work so I uninstalled it. Then I realized the the_content() of all my blog posts was gone. I tried to install the plugin again, I tried to change the category I had set for the plugin, nothing worked. I uninstalled. The content part of my posts is still not showing up at all.
Before I installed that plugin I had only created one category, called "Nyheder"
Now I'm not sure if all of my posts were categorized as "Nyheder" or if they were simply uncategorized. I tried unchecking "Nyheder" from my posts but it gets checked again automatically. I don't know if my posts should be uncategorized (if that's even possible) or if the problem lies somewhere else.
The news archive page of the website in question is here. This page actually still shows the content. But if you click on a posts's title to go to its page, you will see that there is no content.
Here is the code on my single.php page, but I really doubt this is the problem.
<?php get_header(); ?>
<div id="pageHead">
</div>
<div id="main2" class="page clearfix">
<div id="content" class="threeFourth clearfix" style="width:100%;"><?php get_sidebar(); ?>
<?php while (have_posts()) : the_post(); ?>
<div <?php post_class(); ?>>
<h1 style="display:inline;"><?php the_title(); ?></h1>
<?php
$page = $_SERVER['REQUEST_URI'];
if (substr($page, 1, 14) == "events_listing") {
echo "<h2>" . do_shortcode('[events-listing-date]');
if(do_shortcode('[events-listing-end-date]') != get_the_modified_date('d-m-Y') ) {
echo " til " . do_shortcode('[events-listing-end-date]') . "</h2>";
}
}
?>
<br>
<div class="meta clearfix" style="display:inline-block; padding-top: 10px; font-size: 14px;">
<?php _e('Skrevet af', 'themetrust'); ?> <?php the_author_posts_link(); ?> <?php _e('d.', 'themetrust'); ?> <?php the_time( 'j. F, Y' ) ?><br><br>
</div>
<?php edit_post_link(__('Edit Post', 'themetrust'), '<p>', '</p>'); ?>
<?php the_content(); ?>
</div>
<?php endwhile; ?>
</div>
</div>
It looks like it had nothing to do with the plugin, but instead with another change I had made just before installing it. If you look at the code above, I defined a variable called $page. It turns out if I inserted the_content() before that it worked fine, but not after! So I changed the name of the variable to something else and put the_content() back in its place. Voila! I guess there was a conflict with the variable name $page and it somehow affected the_content().

Page with posts of specific category

I need the option to build a page showing all posts of a specific category.
Showing all posts of a category can be done out-of-the-box by wordpress, I know. But I need the possibility to put some information about all those posts.
I know there's a plugin called "List category posts" (http://wordpress.org/plugins/list-category-posts/). It works but it's only showing the links to the posts. I need the full posts (like they are shown on the "blog page").
If you need to "do something" to results, look at
query_posts
via http://codex.wordpress.org/Function_Reference/query_posts
Here is a sketch that I think leans towards your needs using a custom loop. This can be inserted as needed via simple logic in your template:
// this sets up the filter parameters for a category id some_cat_id sorting asc
$args = array(
'cat' => $some_cat_id,
'order' => 'ASC'
);
// The query is applied via a conditional
if($some_conditional) { // for what ever reason we use the filter+args
query_posts( $args );
// this is also an opportunity to "do stuff" before the loop/output
}
// The Loop (simple example)
while ( have_posts() ) :
the_post();
echo '<li>';
the_title();
echo '</li>';
endwhile;
// Reset Query
wp_reset_query();
As a long time WP user I avoid plugins at all costs in preference of writing sustainable code. Plugins are a point of failure and some of the biggest plugin factories out there are nothing but security issues wrapped in sugar.
Custom loops via conditionals using query "filtering" is amazing and this pattern can be extended to category, search, tags, and meta key:value pairs.
Additionally, by understanding the loop the formatting and output can be controlled in a manner that is easy to sustain. Some of the plugin logic is horrid and very inefficient, so always investigate any and all plugins when performance and security are important.
Here's what I find to be the most simple way to do this:
<?php query_posts('cat=25&showposts=3'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
//You can change up the format below any way you'd like.
<li class="homeblock" style="max-width:400px;">
<div class="entry-thumbnail">
<?php the_post_thumbnail(); ?>
</div>
<div class="contentbox"><?php the_excerpt(); ?> </div>
</li>
<?php endwhile; endif; ?>
You can add this to a theme template file and all you need to change is the category id to the category you are trying get posts from. For example if your category id is '114' and you would like to show 9 posts it would look like the following:
<?php query_posts('cat=114&showposts=9'); ?>
If you need to add more info to the posts you should consider using custom fields to do that. Check out the plugin called Advanced Custom Fields.
Here is an example of a custom field being used in a loop:
<?php query_posts('cat=25&showposts=3'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<li class="homeblock" style="max-width:400px;">
<div class="entry-thumbnail">
<?php the_post_thumbnail(); ?>
</div>
<div class="contentbox"><?php the_excerpt(); ?> </div>
<?php $article_link=get_post_meta($post->ID, 'article-link', true);?>
<?php if ( $article_link ) : ?>
<?php else : ?>
<?php endif; ?>
</li>
<?php endwhile; endif; ?>
In the above example, if the custom field 'article-link' has a value, then that value (a URL) is used as the href in a link instead of the permalink of the article.
Hope I have helped!

splitting same category post for different styling - wordpress

currently I am making a custom theme for my client and I am not a expert in this. My question is how to make different style for post from same category. Currently in my theme
Starting a New query for first post
<?php query_posts('showposts=1&cat=videos&offset=0'); if (have_posts()) : ?><?php while (have_posts()) : the_post(); ?>
<div class="first-news">
<h2><a href="<?php the_permalink() ?><?php the_title(); ?></a></h2>
<?php if( has_post_thumbnail() ) { ?>
<?php the_post_thumbnail('video-thumb');?<?php} ?>
<?php $excerpt = get_the_excerpt(); echo string_limit_words($excerpt,8); ?>
</div>
<?php endwhile; else: endif; ?>
then again starting the same query for remaining 4 posts with another div and style
<?php query_posts('showposts=4&cat=videos&offset=1'); if (have_posts()) : ?><?php while (have_posts()) : the_post(); ?>
<div class="second-news">
<h3><a href="<?php the_permalink() ?><?php the_title(); ?></a></h3>
<?php if( has_post_thumbnail() ) { ?>
<?php the_post_thumbnail('news-thumb'); ?><?php } ?>
<?php $excerpt = get_the_excerpt(); echo string_limit_words($excerpt,8); ?>
</div>
<?php endwhile; else: endif; ?>
this working perfectly, Is this correct? I think there may be a good solution which will query post only once and get the required number of posts from same category with different style.
What I want is on below image.
You should use the category template from wordpress.
Before loading your page, wordpress looks for the presence of specific templates, example from the page linked above.
1. category-slug.php
2. category-ID.php
3. category.php
4. archive.php
5. index.php
In order to activate “post formats” in WordPress 3.1+, you will need to open your theme’s functions.php file and paste the following code:
add_theme_support( 'post-formats', array( 'aside', 'gallery' ) );
Note: aside, and gallery are not the only available post formats. The available list of post formats are:
aside – Typically styled blog format.
chat – A chat transcript.
gallery – A gallery of images.
link – A link to another site.
image – A single image.
quote – A quotation.
status – A short status update, usually limited to 140 characters. Similar to a Twitter status update.
video – A single video.
For the full list of post formats, refer to WordPress Codex.
Once you have added this code, you will see a new field in your post write panel in the right hand column where you see publish.
Upon writing the post, you can change the format and hit publish. This will allow you to display your post in a pre-styled format.
Edit your post loop.
Suppose in your case videos category post format is video
We are going to be utilizing the conditional tag: has_post_format()
if ( has_post_format( 'video' ) {
// Blog Category format
}
else
{
// Normal Formate
}
I hope this will help you. More Info...

Drupal and JCarousel Views - Multiple Rows

First off, Im well aware of this topic, but sadly I cannot seem to reply with questions to the original answer provider. Seems Stack Overflow only wants answers on these threads so I am stuck:
Multiple rows with jcarousel
Anyhow, my problem is related to Drupal and the use of the JCarousel module for my views. Im currently getting to the end-stage of my theme development. However, Im having a few problems with this, namely in getting a jcarousel like view style but with 2 rows instead of one. With the following jcarousel-view.tpl.php in my theme folder, I was able to somewhat get further:
<?php
/**
* #file jcarousel-view.tpl.php
* View template to display a list as a carousel.
*/
?>
<ul class="<?php print $jcarousel_classes; ?>">
<?php $i=0; $rows_number=2; //you can change the number of rows ?>
<?php foreach ($rows as $id => $row): ?>
<?php if($i%$rows_number==0) : ?>
<li class="<?php print $classes[$id]; ?>">
<?php endif; ?>
<?php print $row; ?>
<?php if($i%$rows_number==($rows_number-1)) : ?>
</li>
<?php endif; ?>
<?php $i++; ?>
<?php endforeach; ?>
<?php if($i%$rows_number!=0) : ?>
</li>
<?php endif; ?>
</ul>
Here is the end result: http://static.inky.ws/image/2302/image.jpg
As you can see, it group each set of fields for each item into a common column. So I cannot create a full border for each individual item. (See: http://static.inky.ws/image/2303/image.jpg for an example of what Im trying to achieve code-wise)
I can get a grid view but it means changing my view's style to use "Grid", which costs me from using jcarousel. Does anyone have any suggestions on how I can improve my code above? Im thinking that the unordered list markup might not be helping me any.
Please have a look at http://mywishez.com
All those images on front you see are displayed using jcarousel. You can confirm with firebug as well. I set the hight and set the number of items more than can be held in a row!

Resources