I am working a website which utilises a highly complex theme (essentially a whole bunch of other software tacked onto WordPress), so complex in fact, that child themes wont work with it.
I want to override a function (inside a class) within the theme by using a functionality plugin. When I refer to the class from within the plugin, I get this error message:
Fatal error: Class ‘OptimizePress_Default_Asset’ not found in [redacted]\wp-content\plugins\functions.php on line 17
class Foo extends OptimizePress_Default_Asset {
function recent_posts($atts){
// Decode encoded chars
$atts = op_urldecode($atts);
extract(shortcode_atts(array(
'style' => '',
'posts_num' => ''
), $atts));
//Get recent posts
$recent_posts = wp_get_recent_posts(array(
'numberposts' => $posts_num,
'post_status' => 'publish'
));
$recent_html="";
foreach( $recent_posts as $recent ){
$img_src = wp_get_attachment_image_src(get_post_thumbnail_id($recent['ID']), 'single-post-thumbnail');
$img_src = $img_src[0];
if ( is_front_page() ) {
$date = "";
}
else {
$date="<span>".date(OP_DATE_POSTS, strtotime($recent['post_date'])).'</span>';
}
$recent_html .= '<li><div class="thumb"><img src="'.$img_src.'" class="scale-with-grid" /></div><div class="content"><a href="'.get_permalink($recent["ID"]).'">'.$recent["post_title"].'</a>'.$date.'</div></li>';
}
return '
<ul class="recent-posts-style-'.$style.'">
'.$recent_html.'
</ul>
';
}
}
Is it possible to refer to a class in a theme from within a plugin? If so how can this be done? Is this something which has to be referred to after theme set-up?
Thank you in advance