Anyone familiar with WordPress?

I am completely clueless when it comes to PHP and was wondering if anyone could help me with a bit of coding. There seems to be an error when I try to login to my WordPress admin account and I get this:

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 77824 bytes) in /home/shining/public_html/text/wp-admin/includes/dashboard.php on line 135

Here’s the coding… (Line 135 first, and then everything after that respectively.)

[code]if ( current_user_can( ‘activate_plugins’ ) )
$dashboard_widgets[] = ‘dashboard_plugins’;
$dashboard_widgets[] = ‘dashboard_secondary’;

// Filter widget order
$dashboard_widgets = apply_filters( ‘wp_dashboard_widgets’, $dashboard_widgets );

$wp_dashboard_sidebars = array( ‘wp_dashboard’ => $dashboard_widgets, ‘array_version’ => 3.5 );

add_filter( ‘dynamic_sidebar_params’, ‘wp_dashboard_dynamic_sidebar_params’ );

if ( ‘POST’ == $_SERVER[‘REQUEST_METHOD’] && isset($_POST[‘widget_id’]) ) {
ob_start(); // hack - but the same hack wp-admin/widgets.php uses
wp_dashboard_trigger_widget_control( $_POST[‘widget_id’] );
ob_end_clean();
wp_redirect( remove_query_arg( ‘edit’ ) );
exit;
}

if ( $update )
update_option( ‘dashboard_widget_options’, $widget_options );
}

// Echoes out the dashboard
function wp_dashboard() {
echo “

nn”;

// We’re already filtering dynamic_sidebar_params obove
add_filter( ‘option_sidebars_widgets’, ‘wp_dashboard_sidebars_widgets’ ); // here there be hackery
dynamic_sidebar( ‘wp_dashboard’ );
remove_filter( ‘option_sidebars_widgets’, ‘wp_dashboard_sidebars_widgets’ );

echo “
n

nnn”;
}

// Makes sidebar_widgets option reflect the dashboard settings
function wp_dashboard_sidebars_widgets() { // hackery
return $GLOBALS[‘wp_dashboard_sidebars’];
}

// Modifies sidbar params on the fly to set up ids, class names, titles for each widget (called once per widget)
// Switches widget to edit mode if $_GET[‘edit’]
function wp_dashboard_dynamic_sidebar_params( $params ) {
global $wp_registered_widgets, $wp_registered_widget_controls;

$sidebar_defaults = array(‘widget_id’ => 0, ‘before_widget’ => ‘’, ‘after_widget’ => ‘’, ‘before_title’ => ‘’, ‘after_title’ => ‘’);
extract( $sidebar_defaults, EXTR_PREFIX_ALL, ‘sidebar’ );
extract( $params[0], EXTR_PREFIX_ALL, ‘sidebar’ );

if ( !isset($wp_registered_widgets[$sidebar_widget_id]) || !is_array($wp_registered_widgets[$sidebar_widget_id]) ) {
return $params;
}
$widget_defaults = array(‘id’ => ‘’, ‘width’ => ‘’, ‘height’ => ‘’, ‘class’ => ‘’, ‘feed_link’ => ‘’, ‘all_link’ => ‘’, ‘notice’ => false, ‘error’ => false);
extract( $widget_defaults, EXTR_PREFIX_ALL, ‘widget’ );
extract( $wp_registered_widgets[$sidebar_widget_id], EXTR_PREFIX_ALL, ‘widget’ );

$the_classes = array();
if ( in_array($widget_width, array( ‘third’, ‘fourth’, ‘full’ ) ) )
$the_classes[] = $widget_width;

if ( ‘double’ == $widget_height )
$the_classes[] = ‘double’;

if ( $widget_class )
$the_classes[] = $widget_class;

// Add classes to the widget holder
if ( $the_classes )
$sidebar_before_widget = str_replace( "<div class='dashboard-widget-holder ", "<div class='dashboard-widget-holder " . join( ’ ', $the_classes ) . ’ ', $sidebar_before_widget );

$links = array();
if ( $widget_all_link )
$links[] = ‘’ . __( ‘See All’ ) . ‘’;

$content_class = ‘dashboard-widget-content’;
if ( current_user_can( ‘edit_dashboard’ ) && isset($wp_registered_widget_controls[$widget_id]) && is_callable($wp_registered_widget_controls[$widget_id][‘callback’]) ) {
// Switch this widget to edit mode
if ( isset($_GET[‘edit’]) && $_GET[‘edit’] == $widget_id ) {
$content_class .= ’ dashboard-widget-control’;
$wp_registered_widgets[$widget_id][‘callback’] = ‘wp_dashboard_empty’;
$sidebar_widget_name = $wp_registered_widget_controls[$widget_id][‘name’];
$params[1] = ‘wp_dashboard_trigger_widget_control’;
$sidebar_before_widget .= ‘’;
$sidebar_after_widget = “

<input type=‘submit’ value=’” . __( ‘Save’ ) . “’ />
$sidebar_after_widget”;
$links[] = ‘’ . __( ‘Cancel’ ) . ‘’;
} else {
$links[] = ‘<a href="’ . add_query_arg( ‘edit’, $widget_id ) . “#$widget_id” . ‘">’ . __( ‘Edit’ ) . ‘’;
}
}

if ( $widget_feed_link )
$links[] = ’' . __( 'rss icon' ) . ' ’ . __( ‘RSS’ ) . ‘’;

$links = apply_filters( “wp_dashboard_widget_links_$widget_id”, $links );

// Add links to widget’s title bar
if ( $links ) {
$sidebar_before_title .= ‘’;
$sidebar_after_title = ‘
’ . join( ’ | ', $links ) . “
$sidebar_after_title”;
}

// Could have put this in widget-content. Doesn’t really matter
if ( $widget_notice )
$sidebar_after_title .= “ttt

$widget_notice
nn”;

if ( $widget_error )
$sidebar_after_title .= “ttt

$widget_error
nn”;

$sidebar_after_title .= “ttt

nn”;

$sidebar_after_widget .= “ttt

nn”;

foreach( array_keys( $params[0] ) as $key )
$$key = ${‘sidebar_’ . $key};

$params[0] = compact( array_keys( $params[0] ) );

return $params;
}

/* Dashboard Widgets */

function wp_dashboard_recent_comments( $sidebar_args ) {
global $comment;
extract( $sidebar_args, EXTR_SKIP );

echo $before_widget;

echo $before_title;
echo $widget_name;
echo $after_title;

$lambda = create_function( ‘’, ‘return 5;’ );
add_filter( ‘option_posts_per_rss’, $lambda ); // hack - comments query doesn’t accept per_page parameter
$comments_query = new WP_Query(‘feed=rss2&withcomments=1’);
remove_filter( ‘option_posts_per_rss’, $lambda );

$is_first = true;

if ( $comments_query->have_comments() ) {
while ( $comments_query->have_comments() ) { $comments_query->the_comment();

$comment_post_url = get_permalink( $comment->comment_post_ID );
$comment_post_title = get_the_title( $comment->comment_post_ID );
$comment_post_link = “$comment_post_title”;
$comment_link = ‘#’;
$comment_meta = sprintf( __( ‘From %1$s on %2$s %3$s’ ), get_comment_author(), $comment_post_link, $comment_link );

if ( $is_first ) : $is_first = false;
?>

“<?php comment_excerpt(); ?>”

<?php echo $comment_meta; ?>

<?php if ( $comments_query->comment_count > 1 ) : ?>
    <?php endif; // comment_count else : // is_first ?>
  • <?php echo $comment_meta; ?>
  • <?php endif; // is_first }

    if ( $comments_query->comment_count > 1 ) : ?>

<?php endif; // comment_count;

}

echo $after_widget;
}

// $sidebar_args are handled by wp_dashboard_empty()
function wp_dashboard_incoming_links_output() {
$widgets = get_option( ‘dashboard_widget_options’ );
@extract( @$widgets[‘dashboard_incoming_links’], EXTR_SKIP );
$rss = @fetch_rss( $url );
if ( isset($rss->items) && 1 < count($rss->items) ) {// Technorati returns a 1-item feed when it has no results

echo “

    n”;

    $rss->items = array_slice($rss->items, 0, $items);
    foreach ( $rss->items as $item ) {
    $publisher = ‘’;
    $site_link = ‘’;
    $link = ‘’;
    $content = ‘’;
    $date = ‘’;
    $link = clean_url( strip_tags( $item[‘link’] ) );

    if ( isset( $item[‘author_uri’] ) )
    $site_link = clean_url( strip_tags( $item[‘author_uri’] ) );

    if ( !$publisher = wp_specialchars( strip_tags( isset($item[‘dc’][‘publisher’]) ? $item[‘dc’][‘publisher’] : $item[‘author_name’] ) ) )
    $publisher = __( ‘Somebody’ );
    if ( $site_link )
    $publisher = “$publisher”;
    else
    $publisher = “$publisher”;

    if ( isset($item[‘description’]) )
    $content = $item[‘description’];
    elseif ( isset($item[‘summary’]) )
    $content = $item[‘summary’];
    elseif ( isset($item[‘atom_content’]) )
    $content = $item[‘atom_content’];
    else
    $content = __( ‘something’ );
    $content = wp_html_excerpt($content, 50) . ’ …’;
    if ( $link )
    $text = _c( ‘%1$s linked here saying, “%3$s”|feed_display’ );
    else
    $text = _c( ‘%1$s linked here saying, “%3$s”|feed_display’ );

    if ( $show_date ) {
    if ( $show_author || $show_summary )
    $text .= _c( ’ on %4$s|feed_display’ );
    $date = wp_specialchars( strip_tags( isset($item[‘pubdate’]) ? $item[‘pubdate’] : $item[‘published’] ) );
    $date = strtotime( $date );
    $date = gmdate( get_option( ‘date_format’ ), $date );
    }

    echo “t

  • ” . sprintf( _c( “$text|feed_display” ), $publisher, $link, $content, $date ) . “
  • n”;
    }

    echo “

n”;

} else {
echo ‘

’ . __(‘This dashboard widget queries Google Blog Search so that when another blog links to your site it will show up here. It has found no incoming links… yet. It&#8217;s okay &#8212; there is no rush.’) . “

n”;
}
}

// $sidebar_args are handled by wp_dashboard_empty()
function wp_dashboard_rss_output( $widget_id ) {
$widgets = get_option( ‘dashboard_widget_options’ );
wp_widget_rss_output( $widgets[$widget_id] );
}

// $sidebar_args are handled by wp_dashboard_empty()
function wp_dashboard_secondary_output() {
$widgets = get_option( ‘dashboard_widget_options’ );
@extract( @$widgets[‘dashboard_secondary’], EXTR_SKIP );
$rss = @fetch_rss( $url );
if ( !isset($rss->items) || 0 == count($rss->items) )
return false;

echo “

    n”;

    $rss->items = array_slice($rss->items, 0, $items);
    foreach ($rss->items as $item ) {
    $title = wp_specialchars($item[‘title’]);
    $author = preg_replace( ‘|(.+?):.+|s’, ‘$1’, $item[‘title’] );
    $post = preg_replace( ‘|.+?:(.+)|s’, ‘$1’, $item[‘title’] );
    $link = clean_url($item[‘link’]);

    echo “t

  • $post - $author
  • n”;
    }

    echo “

n
n”;
}

// $sidebar_args are handled by wp_dashboard_empty()
function wp_dashboard_plugins_output() {
$popular = @fetch_rss( ‘http://wordpress.org/extend/plugins/rss/browse/popular/’ );
$new = @fetch_rss( ‘http://wordpress.org/extend/plugins/rss/browse/new/’ );
$updated = @fetch_rss( ‘http://wordpress.org/extend/plugins/rss/browse/updated/’ );

foreach ( array( ‘popular’ => __(‘Most Popular’), ‘new’ => __(‘Newest Plugins’), ‘updated’ => __(‘Recently Updated’) ) as $feed => $label ) {
if ( !isset($$feed->items) || 0 == count($$feed->items) )
continue;

$$feed->items = array_slice($$feed->items, 0, 5);
$item_key = array_rand($$feed->items);

// Eliminate some common badly formed plugin descriptions
while ( ( null !== $item_key = array_rand($$feed->items) ) && false !== strpos( $$feed->items[$item_key][‘description’], ‘Plugin Name:’ ) )
unset($$feed->items[$item_key]);

if ( !isset($$feed->items[$item_key]) )
continue;

$item = $$feed->items[$item_key];

// current bbPress feed item titles are: user on “topic title”
if ( preg_match( ‘/"(.*)"/s’, $item[‘title’], $matches ) )
$title = $matches[1];
else // but let’s make it forward compatible if things change
$title = $item[‘title’];
$title = wp_specialchars( $title );

$description = wp_specialchars( strip_tags(html_entity_decode($item[‘description’], ENT_QUOTES)) );

list($link, $frag) = explode( ‘#’, $item[‘link’] );

$link = clean_url($link);
$dlink = rtrim($link, ‘/’) . ‘/download/’;

echo “

$label

n”;
echo “
$title
 (” . __( ‘Download’ ) . “)n”;
echo “

$description

n”;
}
}

// Checks to see if all of the feed url in $check_urls are cached.
// If $check_urls is empty, look for the rss feed url found in the dashboard widget optios of $widget_id.
// If cached, call $callback, a function that echoes out output for this widget.
// If not cache, echo a “Loading…” stub which is later replaced by AJAX call (see top of /wp-admin/index.php)
function wp_dashboard_cached_rss_widget( $widget_id, $callback, $check_urls = array() ) {
$loading = ‘

’ . __( ‘Loading&#8230;’ ) . ‘

’;

if ( empty($check_urls) ) {
$widgets = get_option( ‘dashboard_widget_options’ );
if ( empty($widgets[$widget_id][‘url’]) ) {
echo $loading;
return false;
}
$check_urls = array( $widgets[$widget_id][‘url’] );
}

require_once( ABSPATH . WPINC . ‘/rss.php’ );
init(); // initialize rss constants

$cache = new RSSCache( MAGPIE_CACHE_DIR, MAGPIE_CACHE_AGE );

foreach ( $check_urls as $check_url ) {
$status = $cache->check_cache( $check_url );
if ( ‘HIT’ !== $status ) {
echo $loading;
return false;
}
}

if ( $callback && is_callable( $callback ) ) {
$args = array_slice( func_get_args(), 2 );
array_unshift( $args, $widget_id );
call_user_func_array( $callback, $args );
}

return true;
}

// Empty widget used for JS/AJAX created output.
// Callback inserts content between before_widget and after_widget. Used when widget is in edit mode. Can also be used for custom widgets.
function wp_dashboard_empty( $sidebar_args, $callback = false ) {
extract( $sidebar_args, EXTR_SKIP );

echo $before_widget;

echo $before_title;
echo $widget_name;
echo $after_title;

// When in edit mode, the callback passed to this function is the widget_control callback
if ( $callback && is_callable( $callback ) ) {
$args = array_slice( func_get_args(), 2 );
array_unshift( $args, $widget_id );
call_user_func_array( $callback, $args );
}

echo $after_widget;
}

/* Dashboard Widgets Controls. Ssee also wp_dashboard_empty() */

// Calls widget_control callback
function wp_dashboard_trigger_widget_control( $widget_control_id = false ) {
global $wp_registered_widget_controls;
if ( is_scalar($widget_control_id) && $widget_control_id && isset($wp_registered_widget_controls[$widget_control_id]) && is_callable($wp_registered_widget_controls[$widget_control_id][‘callback’]) )
call_user_func_array( $wp_registered_widget_controls[$widget_control_id][‘callback’], $wp_registered_widget_controls[$widget_control_id][‘params’] );
}

// Sets up $args to be used as input to wp_widget_rss_form(), handles POST data from RSS-type widgets
function wp_dashboard_rss_control( $args ) {
extract( $args );
if ( !$widget_id )
return false;

if ( !$widget_options = get_option( ‘dashboard_widget_options’ ) )
$widget_options = array();

if ( !isset($widget_options[$widget_id]) )
$widget_options[$widget_id] = array();

$number = 1; // Hack to use wp_widget_rss_form()
$widget_options[$widget_id][‘number’] = $number;

if ( ‘POST’ == $_SERVER[‘REQUEST_METHOD’] && isset($_POST[‘widget-rss’][$number]) ) {
$_POST[‘widget-rss’][$number] = stripslashes_deep( $_POST[‘widget-rss’][$number] );
$widget_options[$widget_id] = wp_widget_rss_process( $_POST[‘widget-rss’][$number] );
// title is optional. If black, fill it if possible
if ( !$widget_options[$widget_id][‘title’] && isset($_POST[‘widget-rss’][$number][‘title’]) ) {
require_once(ABSPATH . WPINC . ‘/rss.php’);
$rss = fetch_rss($widget_options[$widget_id][‘url’]);
$widget_options[$widget_id][‘title’] = htmlentities(strip_tags($rss->channel[‘title’]));
}
update_option( ‘dashboard_widget_options’, $widget_options );
}

wp_widget_rss_form( $widget_options[$widget_id], $form_inputs );
}

?>[/code]

Thank you so much for any help!

I am not sure, but I think it’s a memory allocation issue. Is there something that is loading up a lot of memory prior to line 135? (or something else in your user profile)

Sponsor our Newsletter | Privacy Policy | Terms of Service