Como corregir Parse error: syntax error, unexpected (T_STRING)

  • Autor Autor Baspi
  • Fecha de inicio Fecha de inicio
B

Baspi

Dseda
Verificado
Verificación en dos pasos activada
Verificado por Binance
Buenas compañeros he tenido un problema al migrar un blog, el problema es que me sale el siguiente error al parecer en un widget de un theme:

Parse error: syntax error, unexpected 'mas_comentadas_Widget' (T_STRING) in /home/vmctldbf/public_html/misitio.com/wp-content/themes/vred theme/widgets/mas_comentadas.php on line 1

He estado investigando y puede faltar un símbolo de cierre, el problema es que no encuentro el error, no soy experto en PHP así que agradecería cualquier ayuda, el código es:

PHP:
<?phpclass mas_comentadas_Widget extends WP_Widget {public function __construct() {parent::__construct('mas_comentadas','[Vred] Las 5 más comentadas',array('description' => __('Muestra los cinco posts más comentados.'),));}public function widget($args, $instance) {extract($args);$title = apply_filters('widget_title', $instance['title']);if(!$title){$title = 'Más comentadas';}echo $before_widget; ?><h3 class="widget-title"><?php echo $title; ?></h3><div class="mas_comentadas"><?phpglobal $wpdb;$request = "SELECT ID, post_title,CONCAT((SELECT meta_value FROM $wpdb->postmeta WHERE $wpdb->posts.ID=$wpdb->postmeta.post_id AND $wpdb->postmeta.meta_key='_yoast_wpseo_metadesc')) AS 'descripcion', COUNT($wpdb->comments.comment_post_ID) AS 'comment_count' FROM $wpdb->posts, $wpdb->comments WHERE comment_approved = '1' AND $wpdb->posts.ID=$wpdb->comments.comment_post_ID AND post_status = 'publish' GROUP BY $wpdb->comments.comment_post_ID ORDER BY comment_count DESC LIMIT 0, 8";$posts = $wpdb->get_results($request);$n = 1;foreach ($posts as $post) {$x = $n++;$post_title = stripslashes($post->post_title);$comment_count = $post->comment_count;$permalink = get_permalink($post->ID);$descripcion = $post->descripcion;$url_imagen = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'single-thumbnail');$url_imagen = $url_imagen['0'];$alt_imagen = get_the_title(get_the_ID());echo '<div class="box_"><img class="utlimg" src="'.$url_imagen.'" width="50" height="50" alt="'.@$alt_imagen.'" /><a href="'.$permalink.'" title="'.$post_title.'">'.$post_title.'</a><br /><span class="fecha">'.get_the_time('d/m/Y').'</span></div></li>';}?></div><?phpecho $after_widget;}public function update($new_instance, $old_instance) {$instance = array();$instance['title'] = strip_tags($new_instance['title']);return $instance;}public function form($instance) {?><p><label for="<?php echo $this->get_field_id('title'); ?>">Título:</label><input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($instance["title"]); ?>" /></p><?php}}add_action('widgets_init', create_function('', 'register_widget("mas_comentadas_Widget");'));?>
 
Última edición:
tu error es que tienes php pegado con class
phpclass mas_comentadas_Widget extends WP_Widget {public function __construct() {parent::__construct('mas_comentadas','[Vred] Las 5 más comentadas
solo has un espacio y listo. :encouragement: asi php class
 
tu error es que tienes php pegado con class
phpclass mas_comentadas_Widget extends WP_Widget {public function __construct() {parent::__construct('mas_comentadas','[Vred] Las 5 más comentadas
solo has un espacio y listo. :encouragement: asi php class

Muchas gracias compañero, acabo de corregirlo, no obstante me salio un nuevo error:

Parse error: syntax error, unexpected '$wpdb' (T_VARIABLE) in /home/vmctldbf/public_html/misitio.com/wp-content/themes/vred/widgets/mas_comentadas.php on line 1
 
Ok intenta poniendo tu código así:

PHP:
<?php
class mas_comentadas_Widget extends WP_Widget {public function __construct() {parent::__construct('mas_comentadas','[Vred] Las 5 más comentadas',array('description' => __('Muestra los cinco posts más comentados.'),));}public function widget($args, $instance) {extract($args);$title = apply_filters('widget_title', $instance['title']);if(!$title){$title = 'Más comentadas';}echo $before_widget; ?><h3 class="widget-title"><?php echo $title; ?></h3><div class="mas_comentadas"><?phpglobal $wpdb;$request = "SELECT ID, post_title,CONCAT((SELECT meta_value FROM $wpdb->postmeta WHERE $wpdb->posts.ID=$wpdb->postmeta.post_id AND $wpdb->postmeta.meta_key='_yoast_wpseo_metadesc')) AS 'descripcion', COUNT($wpdb->comments.comment_post_ID) AS 'comment_count' FROM $wpdb->posts, $wpdb->comments WHERE comment_approved = '1' AND $wpdb->posts.ID=$wpdb->comments.comment_post_ID AND post_status = 'publish' GROUP BY $wpdb->comments.comment_post_ID ORDER BY comment_count DESC LIMIT 0, 8";$posts = $wpdb->get_results($request);$n = 1;foreach ($posts as $post) {$x = $n++;$post_title = stripslashes($post->post_title);$comment_count = $post->comment_count;$permalink = get_permalink($post->ID);$descripcion = $post->descripcion;$url_imagen = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'single-thumbnail');$url_imagen = $url_imagen['0'];$alt_imagen = get_the_title(get_the_ID());echo '<div class="box_"><img class="utlimg" src="'.$url_imagen.'" width="50" height="50" alt="'.@$alt_imagen.'" /><a href="'.$permalink.'" title="'.$post_title.'">'.$post_title.'</a><br /><span class="fecha">'.get_the_time('d/m/Y').'</span></div></li>';}?></div><?phpecho $after_widget;}public function update($new_instance, $old_instance) {$instance = array();$instance['title'] = strip_tags($new_instance['title']);return $instance;}public function form($instance) {?><p><label for="<?php echo $this->get_field_id('title'); ?>">Título:</label><input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($instance["title"]); ?>" /></p><?php}}add_action('widgets_init', create_function('', 'register_widget("mas_comentadas_Widget");'));?>

Solo cambie la primera linea, di un enter y pegue esta etiqueta de php <?php
 
Muchas gracias compañero, acabo de corregirlo, no obstante me salio un nuevo error:

Parse error: syntax error, unexpected '$wpdb' (T_VARIABLE) in /home/vmctldbf/public_html/misitio.com/wp-content/themes/vred/widgets/mas_comentadas.php on line 1

Básicamente el error es lo mismo pero en otra linea. Busca:
PHP:
<?phpglobal
y lo cambias por:
PHP:
<?php global

Saludos
 
Básicamente el error es lo mismo pero en otra linea. Busca:
PHP:
<?phpglobal
y lo cambias por:
PHP:
<?php global

Saludos

Muchas gracias, ya está corregido y funcionando el theme.
 
Atrás
Arriba