building WordPress plugin with bootstrap without interfering existing theme - css

I have a very specific question, related to the context: I'm re-building a WP plugin that have already 1000+ active install.
I was thinking using Twitter bootstrap to make good responsiveness of my views, and adding it like this :
add_action('wp_head','head_code');
function head_code(){
// compiled and minified CSS
$headcode = '<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">';
echo $headcode;
}
The problem this is totally interfering with the installed theme (changing the layout). I can't change anything in the theme nor the WP install, this is just a plugin that can be downloaded for the WP repository and have some backend and frontend views, I shouldn't change anything that is already existing on the website.
So I see only 2 ways :
1. I can "isolate" the bootstrap css only for my view's usage. If possible, how?
2. I have to use a more standard was of developing WP plugin and use other responsiveness best practice. What's your oppinion / feedback?

Bootstrap classes create conflicts with your actual theme, I found a gist of bootstrap 3 with a wrapper called .bootstrap-wrapper for avoiding conflicts.
You can also use this css prefix tool with the last version of bootstrap.

Related

Wordpress Admin - Plugin's back-end stylesheets not loading

I've a problem with a WP admin area and its plugins.
It seems that the plugins' stylesheets used on WP back-end don't load. While general WP admin area CSS is loading correctly. That wouldn't be a big issue but some styles affect important functionalities (specially Advanced Custom Fields).
Basically, there's a massive list on the back-end pages with this missing href attribute:
<link rel="stylesheet" href="">
All the plugins are up to date.
All the plugins's CSS files are where they're supposed to.
The website is using a quite old theme for the front-page.
I've been thinking of two different solutions:
Ideally, fixing these broken links.
Otherwise, manually add the most important stylesheets somehow to the back-end theme.
Thanks a lot in advance for your time guys!
Marc
This is very late, but I had this same issue. It turned out that an old theme (circa 2015) was using an old version of the "Soil" plugin. If you disable the "clean-up" module (or the plugin entirely), this should get your stylesheets working.

Migrating Wordpress themes using Bootstrap from 2.3.2 to 3.3.7 (and higher)

I'm set with the migration of several Wordpress themes that use Bootstrap 2.3.2. The choice is to use 3.3.7.
First off, I checked that there are no custom div IDs or classes used in the theme.
I then replaced the 2.3.2 CSS/JS Bootstrap files with the 3.3.7 equivalent files.
The layout was a mess as a result. Images are no longer responsive, and there is obvious viewport overflow in different devices.
I have already noticed that the Wordpress posts and pages use HTML elements with Bootstrap styling directly applied.
Does anyone here have experience with this kind of large scale task? What workflow did you apply to migrate Wordpres themes with Bootstrap from 2.3.2 to 3.3.7 quickly?**
I do not need to change the look and feel.
Have you looked at the migration document here? the migration document highlights all changes to classes and what you need to do. There are also online tools like this one and this tool which you can try.

Does Dojo have a default CSS file with no theme applied?

I am trying to build a new design on an old system that is using DOJO, eventually we are going to move to AJAX to handle the data calls. Is there a default or minified CSS file so I don't have to use their themes? (i.e. Claro, which is the theme that was and still is applied)
It says you can make custom themes, but there has to be a bare bones version out there somewhere.
Thanks for your time.
The bare minium CSS is available in dijit.css
(you can see the file on the CDN: https://ajax.googleapis.com/ajax/libs/dojo/1.10.0/dijit/themes/dijit.css)
As dojo team says about this file :
Essential styles that themes can inherit.
In other words, works but doesn't look great.
So be aware it will be ugly!
But you can build your own theme starting from that.
dojo comes with out of the box the following themes:
Claro
Tundra
Soria
Nihilo
There is no really a default CSS a part of the CSS which is included in on of the listed theme. But as ben point out in his answer, there is a dijit.css which is a very essential base of CSS which other themes can in-heritage from.
You can apply them adding the following in your HTML file:
<link rel="stylesheet" href="dojo/dijit/themes/claro/claro.css" />
<body class="claro">
Or you can use a CDN, example for claro (just change the name for css file in order to get a different theme):
https://ajax.googleapis.com/ajax/libs/dojo/1.10.0/dijit/themes/claro/claro.css
The CDN version is an unique file and easy to include in your app but it is not minified.
If you need to have a minified version, you could use the dojo build to compact all your project files and included CSS for your theme minified.
More info here:
https://dojotoolkit.org/reference-guide/1.10/dijit/themes.html#id10

Material Design Lite: Is Installation on Wordpress possible?

Random and probably dumb question-can Material-Design-Lite blog template be fully installed on Wordpress? Downloaded the full template from http://www.getmdl.io/templates/blog/index.html and wondering how to use the entire file....
Thanks!
Sure it is possible! I actually was playing around with MDL and integrated it into WordPress. If you are interested you can grab it off GitHub:
https://github.com/braginteractive/MDLWP
Yes, you can absolutely make a Wordpress template using MDL. Helping you do that though... is a bit of a big task. Try looking for help around the web on just building Wordpress templates, then when are you working with HTML, use MDL classes and necessary attributes for components.
Yes. You'll probably want to do so by creating a new theme. The MDL templates provides static HTML, CSS, and Javascript. Wordpress requires PHP to dynamically add your content. You could approach this from two directions: modifying an existing theme or blank starter-theme to work with the CSS and Javascript, or adding the necessary php to the MDL HTML files (and making them php files).
You could also potentially add the MDL css and javascript through a child theme or plugin to use only select portions of it if you're not looking for a MDL Theme. At a minimum you'll need to add classes to the elements you want to affect, and watch out for potential conflicts.
Not sure of your level of experience, but here are some starting points.
Wordpress Codex on Theme Development
A tutorial on creating a theme from static html
A tutorial on including your css and javascript files
Write now there are two themes available for free
MDLWP - Free Theme and premium plugins available -
http://mdlwp.com/
Realistic - Free theme
https://wordpress.org/themes/realistic/

Using Twitter Bootstrap together with Wordpress

How do I use Wordpress together with Twitter Bootstrap? I know how to set up a Wordpress page and I've already worked with Bootstrap, but now I want to use these two together for the first time.
For my Wordpress projects I normally just installed Wordpress and started from scratch with creating a new theme. For my Bootstrap projects I always used Initializr to build a template.
Now using Google I found various "Bootstrap themes" and plugins , do I need one of those? I want to customize the bootstrap look with my own colors etc. using LESS, that's why I am asking. I am just having trouble to understand how these two will work together and I haven't found any good resource for it.
There will be a few ways to tackle this, but here's what I've been doing...
Take a copy of your favorite starting point theme
Download the full bootstrap repo (less and everything) and pop it into your theme folder.
Create a folder called 'css' inside the bootstrap folder and set this as your location to output your compiled 'bootstrap.css' file.
Then up in the theme root, open 'styles.css', change the theme name etc as you would if you were creating a new theme, delete all the styles and add just one line of code #import url("bootstrap/css/bootstrap.css");
You should now be able to select this new theme from your 'appearances' menu in 'wp-admin'.
It'll obviously look horrific, but once you add a few of your theme classes/IDs into 'layout.less'. Then run through 'variables.less' to add you base theme you'll be getting somewhere.
Other than that you'll have to go through each template file and consider all the classes/IDs, sometimes edit the theme to make better use of existing bootstrap classes, but other times you'll need to add you're own custom classes to bootstrap.
It's quite time consuming, but once its done it can obviously be re-used to speed up future projects.
Incidentally, I've also been building a theme using this same principle but based on http://stuffandnonsense.co.uk/projects/320andup/ both great projects. I'd recommend seeing which best suits you.
You could always us the Twitter Bootstrap WordPress plugin. It's completely free on WordPress.org here: http://wordpress.org/extend/plugins/wordpress-bootstrap-css/
There's also lots of shortcodes included so you can include Bootstrap elements within your pages and post - there's a demo page of it all here: http://worpit.com/wordpress-twitter-bootstrap-css-plugin-home/wordpress-shortcodes-demo/
Hope that helps you get started!
I answered the same question before here at stackoverflow. I feel like it's kind of late sharing but for those who are looking for such tutorial just click the hyperlinked title given: Using Twitter Bootstrap in Wordpress.
There is a quick way to do it, using composer in your theme:
composer.json
{
"config": {
"component-dir": "lib/composer",
"vendor-dir": "lib/composer",
"bin-dir" : "bin/composer",
"cache-dir" : "var/cache/composer"
},
"require": {
"twitter/bootstrap": "3"
}
}
Note: I removed the other composer's section and requirements and phing integration to reduce complexity.
Execute
composer install
And then in your theme, add /lib/composer/twitter/bootstrap/dist/css/bootstrap.css with this sentences
$bootUri = get_template_directory_uri() . '/lib/composer/twitter/bootstrap/dist/css/bootstrap.css';
wp_enqueue_style('sindy_bootstrap', $bootsUri);
et voilĂ ! :)

Resources