Karessa
asked on
Change a filter function in php
Hi,
I'd like to change this code but can't seem to figure it out. On page load there is a link/button selected called "ALL". Then two other links/buttons are loaded from Wordpress portfolio categories Web and Branding. I'd like to make Web the default item and be selected and the ALL no longer appear.
Line 15 in the code is where the All filter is, then just below that is where it loads the other categories
Thanks for the help, hopefully I copied out enough code. Here is a link to a demo site where the code is in use. Click on Work and you'll see the ALL then Beautiful Cars etc http://demo.teothemes.com/?theme=scrn
I'd like to change this code but can't seem to figure it out. On page load there is a link/button selected called "ALL". Then two other links/buttons are loaded from Wordpress portfolio categories Web and Branding. I'd like to make Web the default item and be selected and the ALL no longer appear.
Line 15 in the code is where the All filter is, then just below that is where it loads the other categories
add_shortcode('filterable_portfolio', 'vp_filterable_portfolio');
function vp_filterable_portfolio($atts, $content=null) {
extract(shortcode_atts(array(
'categories' => '',
'number' => 15
), $atts));
$id = rand(1, 50000);
$output = '<div class="filterable-' . $id . '">';
global $post;
$categories = esc_attr($categories);
$categories = str_replace(' ', '', $categories);
$output .= '<div class="filter-categories sixteen columns">
<div class="filter">
<ul>
<li><a href="" data-filter="*" class="selected">ALL</a></li>';
if($categories == '')
{
$cats = get_categories();
foreach($cats as $cat) {
$output .= '<li><a href="" data-filter=".' . $cat->term_id . '">' . $cat->name . '</a></li>';
}
}
else
{
$cats = explode(",", $categories);
foreach($cats as $cat) {
$cat_details = get_category($cat);
$output .= '<li><a href="" data-filter=".' . $cat . '">' . $cat_details->name . '</a></li>';
}
}
$output .= '</ul>
</div> <!-- end filter -->
Thanks for the help, hopefully I copied out enough code. Here is a link to a demo site where the code is in use. Click on Work and you'll see the ALL then Beautiful Cars etc http://demo.teothemes.com/?theme=scrn
ASKER
thanks for the edit, I'll give it a try shortly, why do you not recommend it?
ASKER
jester,
update on this, so yes the all button is gone thanks
but on page load the web is not selected, no item is selected. can you help me figure that piece out?
thanks for the assistance.
update on this, so yes the all button is gone thanks
but on page load the web is not selected, no item is selected. can you help me figure that piece out?
thanks for the assistance.
"thanks for the edit, I'll give it a try shortly, why do you not recommend it? "
anything that is in a core package, WordPress core, plugin, etc. that gets changed without using an action or filter hook will be overwritten in an update.
So a year from now, someone will run an update, the page will look different and the developer will have forgotten what was changed to make it the way it was. someone will spend time, probably unpaid, to track down what changed and correct it.
went a littel to quick for my own good, variable names in the for each were wrong
add_shortcode('filterable_portfolio', 'vp_filterable_portfolio');
function vp_filterable_portfolio($atts, $content=null) {
extract(shortcode_atts(array(
'categories' => '',
'number' => 15
), $atts));
$id = rand(1, 50000);
$output = '<div class="filterable-' . $id . '">';
global $post;
$categories = esc_attr($categories);
$categories = str_replace(' ', '', $categories);
$output .= '<div class="filter-categories sixteen columns">
<div class="filter">
<ul>';
// <li><a href="" data-filter="*" class="selected">ALL</a></li>';
if($categories == '')
{
$cats = get_categories();
foreach($cats as $cat) {
$selected='';
if ($cat->name =="Web")[
$selected='selected';
}
$output .= '<li><a href="" data-filter=".' . $cat->term_id . '" class="'.$selected.'">' . $cat->name . '</a></li>';
}
}
else
{
$cats = explode(",", $categories);
foreach($cats as $cat) {
$selected='';
if ($cat_details->name =="Web")[
$selected='selected';
}
$cat_details = get_category($cat);
$output .= '<li><a href="" data-filter=".' . $cat . '" class="'.$selected.'">' . $cat_details->name . '</a></li>';
}
}
$output .= '</ul>
</div> <!-- end filter -->
ASKER
Jester,
Appreciate the point on updating, it's a child theme type situation in WP so updates won't overwrite the code change and I'm pretty meticulous note taker for update and changes.
The code change does now select Web but it also selects every other category as well. I have 4, Web, Branding, Social, IT. on page load my hope was to have Web be selected and the 6 images load that belong to that category, the other 3 would not be selected until clicked on.
Make sense? do you need any additional info to help?
thanks again for you assistance.
Appreciate the point on updating, it's a child theme type situation in WP so updates won't overwrite the code change and I'm pretty meticulous note taker for update and changes.
The code change does now select Web but it also selects every other category as well. I have 4, Web, Branding, Social, IT. on page load my hope was to have Web be selected and the 6 images load that belong to that category, the other 3 would not be selected until clicked on.
Make sense? do you need any additional info to help?
thanks again for you assistance.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
the site is under construction and locked out except for admin accounts. I don' t mind sending you temp log in info but I don't want to post it here in the clear? you have somewhere ti can send it?
thanks
thanks
ASKER
It's all good for now, thanks for the help jester!
i don't recommend doing this but it should work and get rid of the all option, update the above to:
Open in new window