Recently I developed a theme for one of my client and I had to highlight the menu item of parent category in main menu when one of its associated single custom post is viewed. For that I had to add an action in my functions.php file for nav_menu_css_class. What is does is it returns the ‘active’ class which WordPress adds to the parent category menu item in the main menu. You can see the code at Gist here.
Category PHP
PHP
Displaying Titles in Multiline in WordPress
When title is written it is usually displayed in single line on front-end until it is too long to display in one line. But if you want to write title in multiline and want to line break the title after a certain word how can you do that.
It is pretty simple. Since, we know the fact that when title is displayed it is a heading which is displayed using HTML tag off course. So, taking benefit of HTML we can just insert a HTML line break element <br/> just after the word in our title where we want the line break. Like this:
“This is my title <br/> with my own line break”

This will be displayed in two lines when you publish the post.
Different color for each menu item
In a recent project I got a requirement that each menu item should be highlighted in different color when visited. The menu items and their required active colors were:
- Home – Green
- Portfolio – Blue
- Team – Yellow
- Contact – Red
These colors were to be applied only when that page is being visited otherwise color of menu item should be default black color.
So, if user is visiting home page then menu item should something like this

And if user is visiting Portfolio page then menu should be something like this

Considering that this was a WordPress theme project where we were using Understrap as a base theme which is based on Twitter Bootstrap. So, when user visits, for example a home page WordPress will attach a .active CSS class to it. Taking advantage of that we added different classes for each menu item and then used following rule to make menu item colors different:
.navbar-nav > .home.active > a {
color: green!important;
}
.navbar-nav > .portfolio.active > a {
color: blue!important;
}
.navbar-nav > .team.active > a {
color: yellow!important;
}
.navbar-nav > .connect.active > a {
color: red!important;
}
CSS Class Chaining
Rollover image – Change image on hover/mouse over
Often when designing websites static or dynamic, PHP or ASP.Net, Laravel or WordPress, you have to design in a way if user hovers an image it gets changed and an alternate image is displayed. This can be easily achieved via simple HTML events. The trick is explained here.
It is simple as that.
Sharing data between Laravel and Angular
When building applications with Laravel and Angular you might come across a problem where you want to print data using AngularJS brackets {{}} but before it can be parsed by AngularJS, Laravel blade engine parses it and tries to replace the value if it finds one. Otherwise Laravel will start complaining about the variables. To solve that you just need to prepend brackets with @ sign so blade engine knows that you just need to ignore this expression and AngularJS will take care of it. And AngularJS will parse it and replace the variables with actual data.
Below is a sample snippet to do this:
@{{ article.body }}
In this snippet Laravel blade engine will ignore this and AngularJS will parse it and replace it with article.body data it has.
Laravel: Specified key was too long error on migration
When you install a new Laravel project with ‘laravel new’ and run the migration that comes with it you might get following error:
#php artisan migrate Migration table created successfully. [Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `users` add unique `users_email_unique`(`email`)) [PDOException] SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
To solve this error edit your app/Providers/AppServiceProvider.php file.
Add the namespace:
use Illuminate\Support\Facades\Schema;
and then add the following line in boot() method of your AppServiceProvider class.
use Illuminate\Support\Facades\Schema;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Schema::defaultStringLength(191);
}
}
This should solve your problem. Just delete all the tables and run the migration again.
How to start E-commerce business in Pakistan? Part-1
It is very impressive how Pakistan is progressing in the field of IT, telecom and broadband penetration. Pakistan’s e-commerce market is growing tremendously and it presents great opportunities for everyone.
You must be logged in to post a comment.