все
Я создаю плагин wordpress только для улучшения моих знаний WP. Этот плагин отображает Total Twitter counter & Feed Subscriber. Вы можете управлять им через виджет.
и я получаю эту ошибку.
Плагин генерировал 123 символа неожиданного выхода во время активации. Если вы заметили сообщения «уже отправленные», проблемы с фидами синдикации или другие проблемы, попробуйте отключить или удалить этот плагин.
Если вы хотите скачать этот плагин, перейдите по этой ссылке: ajayy.com/TRR_Stats.zip
<?php /* * Plugin Name: Twitter & RSS Stats * Version: 1.0 * Plugin URI: http://sss.com/ * Description: Facebook, Twitter & RSS Social Stats widget <a href="http://jessealtman.com/2009/06/08/tutorial-wordpress-28-widget-api/">tutorial</a>. * Author: Ajay Patel * Author URI: http://sss.com/ */ addHeaderCode(); function addHeaderCode() { echo '<link type="text/css" rel="stylesheet" href="' . get_bloginfo('wpurl') . '/wp-content/plugins/TRR_Stats/css/style.css" />' . "\n"; } /*******************************/ /* Create table */ /********************************/ function my_plugin_create_table() { // do NOT forget this global global $wpdb; // this if statement makes sure that the table doe not exist already if($wpdb->get_var("show tables like TRR_Stats") != 'TRR_Stats') { $sql = "CREATE TABLE TRR_Stats ( id mediumint(9) NOT NULL, rss_email tinytext NOT NULL, twitter tinytext NOT NULL, rss tinytext NOT NULL, UNIQUE KEY id (id) );"; require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql); } } // this hook will cause our creation function to run when the plugin is activated register_activation_hook( __FILE__, 'my_plugin_create_table' ); class FTRWidget extends WP_Widget { /** * Declares the FTRWidget class. * */ function FTRWidget(){ $widget_ops = array('classname' => 'widget_hello_world', 'description' => __( "Example widget demoing WordPress 2.8 widget API") ); $control_ops = array('width' => 300, 'height' => 300); $this->WP_Widget('helloworld', __('Twitter & RSS Social Stats'), $widget_ops, $control_ops); } /** * Displays the Widget * */ function widget($args, $instance){ extract($args); $rss_email = empty($instance['rss_email']) ? 'webdesignergeeks' : $instance['rss_email']; $twitter = empty($instance['twitter']) ? 'webdesignergeek' : $instance['twitter']; $rss = empty($instance['rss']) ? 'webdesignergeeks' : $instance['rss']; # Featch Data from table global $wpdb; $item_info = $wpdb->get_row("SELECT * FROM TRR_Stats WHERE id=1;"); $rss_email_f = $item_info->rss_email; $url = file_get_contents('https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=24thfloor'); preg_match( '/circulation="(\d+)"/', $url, $matches ); if ( $matches[1] ) $rss_f = $matches[1] . " Subscribers"; else echo "0"; $twit = file_get_contents('http://twitter.com/users/show/'.$twitter.'.xml'); preg_match( '/\<followers_count\>(\d+)\<\/followers_count\>/', $twit, $matches ); if ( $matches[1] ) $twitter_f = $matches[1] . " Followers"; else $twitter_f = "0"; echo ' <div class="sidebarContainer" id="sidebarSubscribe"> <a target="_blank" href="http://twitter.com/'.$twitter.'" class="subscribeSidebarBox" id="followTwitter"> <span class="icon"><img src="'.get_bloginfo('url').'/wp-content/plugins/TRR_Stats/img/twitter.png" alt="Twitter" /></span> <span class="title">Follow Us on Twitter</span> <span class="count">'.$twitter_f.'+</span> </a> <a target="_blank" href="http://feeds.feedburner.com/'.$rss.'" class="subscribeSidebarBox" id="subscribeRSS"> <span class="icon"><img src="'.get_bloginfo('url').'/wp-content/plugins/TRR_Stats/img/rss_feed.png" alt="RSS"/></span> <span class="title">Subscribe to our RSS feed</span> <span class="count">'.$rss_f.'+</span> </a> <a target="_blank" href="http://feedburner.google.com/fb/a/mailverify?uri='.$rss_email_f.'" class="subscribeSidebarBox" id="subscribeEmail"> <span class="icon"><img src="'.get_bloginfo('url').'/wp-content/plugins/TRR_Stats/img/rss_email.png" alt="rss_email" /></span> <span class="title">Subscribe for updates via</span> <span class="count">EMAIL</span> </a> </div>'; # After the widget echo $after_widget; } /** * Saves the widgets settings. * */ function update($new_instance, $old_instance){ $instance = $old_instance; $instance['rss_email'] = strip_tags(stripslashes($new_instance['rss_email'])); $instance['twitter'] = strip_tags(stripslashes($new_instance['twitter'])); $instance['rss'] = strip_tags(stripslashes($new_instance['rss'])); global $wpdb; //Insert First time $wpdb->insert( 'TRR_Stats', array( 'id' => 1, 'rss_email' => $instance['rss_email'], 'twitter' => $instance['twitter'], 'rss' => $instance['rss'] ) ); //Rest Update Data global $wpdb; $wpdb->update( 'TRR_Stats', array( 'rss_email' => $instance['rss_email'], 'twitter' => $instance['twitter'], 'rss' => $instance['rss'] ), array( 'id' => 1 ) ); return $instance; } /** * Creates the edit form for the widget. * */ function form($instance){ //Defaults $instance = wp_parse_args( (array) $instance, array('rss_email'=>'', 'twitter'=>'engiguide', 'rss'=>'www.rss_email.com/engiguide') ); $rss_email = htmlspecialchars($instance['rss_email']); $twitter = htmlspecialchars($instance['twitter']); $rss = htmlspecialchars($instance['rss']); # Output the options # Twitter echo '<p style="text-align:right;"><label for="' . $this->get_field_name('twitter') . '">' . ('Twitter:') . ' <input style="width: 200px;" id="' . $this->get_field_id('twitter') . '" name="' . $this->get_field_name('twitter') . '" type="text" value="' . $twitter . '" /></label></p>'; echo '<p style="padding-left: 110;">ie: webdesignergeeks</p>'; # Rss echo '<p style="text-align:right;"><label for="' . $this->get_field_name('rss') . '">' . __('Rss:') . ' <input style="width: 200px;" id="' . $this->get_field_id('rss') . '" name="' . $this->get_field_name('rss') . '" type="text" value="' . $rss . '" /></label></p>'; echo '<p style="padding-left: 110;">ie: webdesignergeeks</p>'; # Rss Email echo '<p style="text-align:right;"><label for="' . $this->get_field_name('rss_email') . '">' . ('Rss Email:') . ' <input style="width: 200px;" id="' . $this->get_field_id('rss_email') . '" name="' . $this->get_field_name('rss_email') . '" type="text" value="' . $rss_email . '" /></label></p>'; echo '<p style="padding-left: 110;">ie: webdesignergeeks</p>'; } }// END class /** * * Calls 'widgets_init' action after the Hello World widget has been registered. */ function TTRInit() { register_widget('FTRWidget'); } add_action('widgets_init', 'TTRInit'); ?>
Удалите пробел с начала тегов. удалить addHeaderCode (); сверху и добавьте этот код add_action ('wp_head', 'addHeaderCode'); в ваш файл после функции addHeaderCode (). его определенно решить вашу проблему.
Я получил дополнительные «xxx» белые пробелы после заключительного тега php закрытия. Убрали его, и предупреждение исчезло. Эти белые пробелы были «неожиданным выходом».
Вы должны попробовать следующее:
plugin_error()
wp_config.php
set wp_DEBUG true
, что поможет вам увидеть ошибки Это может вам помочь.
это была проблема, связанная с UTF8. Я преобразовал его с Notepad ++ в UTF8, но мне пришлось его вводить в «UTF8 (без спецификации)». Теперь у меня нет никакого уведомления.
Я не думаю, что вы должны отправлять какой-либо вывод в addHeaderCode()
, это происходит слишком рано. См. « Действия во время типичного запроса» .
Вместо этого попробуйте подключиться к wp_head, чтобы добавить таблицу стилей, которая должна запускаться между <head>...</head>
.
Попробуйте обернуть сообщение с помощью __()
как __("Hello, world!")
Сделал трюк для меня.
Вы можете удалить функцию update () без этой функции, она будет работать нормально и будет делать то же самое, что вы делаете.
У меня была такая же проблема с плагином WooCommerce Smart Coupons. Я удалил все лишние строки из файлов плагинов php и сохранил их в «UTF8 (без спецификации)» (как упоминал @Umaie Hamid). Это устранило проблему.
Я исправил это, удалив пробелы в коде, используя «плагин редактирования» в администраторе WP. Я думаю, что когда WP сохранит изменения, он также выполнит все необходимые настройки, такие как сохранение файла как UTF-8.
Я получал такую же ошибку, просто удаляю белый интервал в вашем коде.