Unexpected end of file (plugin)

  • Unknown's avatar

    I had several Custom Post Types in functions.php
    I just migrated all of them to individual plugin files, just to be more tidy.

    the code is the same, how ever, I am getting the same error on every plugin, which is the following:

    Parse error: syntax error, unexpected end of file in /Applications/MAMP/htdocs/revistafilm/wp-content/plugins/revistafilm-articulos/revistafilm-articulos.php on line 193

    line 193 is the closing php tag.

    After some testing, I have discovered that the error is on the ‘enter_title_here’ filter. If I delete that filter, the plugin works just fine. But I don’t know where is the error.

    The whole plugin code:

    <?php
    /*
    Plugin Name: Revista Film: Artículos
    */
    	//REGISTRAR CUSTOM POST TYPE
    		add_action('init', 'registrar_CPT' );
    	//REGISTAR TAXONOMIAS
    		add_action('init', 'registrar_taxonomias' );
    	//REGISTRAR METABOXES
    		add_action('add_meta_boxes', 'registrar_metaboxes' );
    	//SALVAR METABOXES INFO
    		add_action(	'save_post' , 'salvar_metaboxes_info');
    
    	//REGISTRAR CUSTOM POST TYPE
    	function registrar_CPT() {
    
    		$labels = array(
    			'name' => 'Artículos',
    			'singular_name' => 'Artículo',
    			'add_new' => 'Agregar nuevo artículo',
    			'add_new_item' => 'Agregar nuevo artículo',
    			'edit_item' => 'Editar artículo',
    			'new_item' => 'Nuevo artículo',
    			'all_items' => 'Todos los artículos',
    			'view_item' => 'Ver artículo',
    			'search_items' => 'Buscar artículos',
    			'not_found' => 'No se encontraron artículos',
    			'not_found_in_trash' => 'No se encontraron artículos en la papelera',
    			'menu_name' => 'Artículos'
    		);
    		register_post_type('articulos',
    			array(
    				'labels' => $labels,
    				'public' => true,
    				'supports' => array(
    					'title','editor','thumbnail','excerpt','comments','trackbacks','custom-fields'
    				),
    				'has_archive' => true,
    				'menu_icon' => 'dashicons-admin-page',
    			)
    		);		
    
    		//cambiar placeholder del título
    		function title_text_input ( $title ) {
    	      if ( get_post_type() == 'articulos' ) {
    	      	$title = __( 'Título del Artículo' );
    	      }
    	      return $title;
    		add_filter( 'enter_title_here', 'title_text_input' );
    
    		//agregar descripción para el textarea
    		function textarea_description( $content, $post ) {
    		   if ( 'articulos' == $post->post_type ) {
    		   	$content = 'Ingresar sección principal del artículo';
    		   }
    		   return $content;
    		}
    		add_filter( 'default_content', 'textarea_description', 10, 2 );
    
    	}
    	// registrar_CPT()
    
    	//REGISTAR TAXONOMIAS
    	function registrar_taxonomias() {
    
    	}// registrar_taxonomias()
    
    	//REGISTRAR METABOXES
    	function registrar_metaboxes() {
    
    		// register 'subtitulo' metabox
    		add_meta_box(
    			'articulo-subtitulo',    							// Unique CSS ID
    			esc_html__( 'Agregar Subtítulo', 'false' ), 	// Title
    			'articulos_subtitulo',   							// Callback function to display meta box information
    			'articulos',         								// Admin page (or post type)
    			'advanced',         									// Context
    			'high' 		        									// Priority
    		);
    		// show 'subtitulo' metabox
    		function articulos_subtitulo($post, $box) {
    			//obtener los valores de los metaboxes
    			$subtitulo_articulo = get_post_meta($post->ID, '_subtitulo-articulo', true);
    			//nonce for security
    			wp_nonce_field(plugin_basename(__FILE__), 'articulos_save_custom_meta_boxes');
    			//subtítulo de artículo
    			echo '<p><input type="text" name="subtitulo-articulo" id="subtitulo-articulo" value="'.esc_attr($subtitulo_articulo).'" placeholder="Ingresar subtítulo (opcional)" style="width:100%;">
    					</p>';
    		}
    		// Ubicar el subtítulo debajo del título: Move all "advanced" metaboxes above the default editor
    		add_action('edit_form_after_title', function() {
    		    global $post, $wp_meta_boxes;
    		    do_meta_boxes(get_current_screen(), 'advanced', $post);
    		    unset($wp_meta_boxes[get_post_type($post)]['advanced']);
    		});
    
    		//register 'revistas' metaboxes
    		add_meta_box(
    			'listado-revistas',
    			__('Revistas', ''),
    			'listar_revistas',
    			'articulos',
    			'side',
    			'default'
    		);
    		//show 'revistas' CPT metaboxes
    		function listar_revistas($post, $args){
    			wp_nonce_field( plugin_basename( __FILE__ ), 'listado_revistas_nonce' );
    			$revista_id = get_post_meta($post->ID, '_revista', true);
    
    			echo "<p>Selecciona la revista a la que pertenece el artículo</p>";
    			echo "<select id='revistas' name='revistas'>";
    
    				// Query de las revistas
    				$query = new WP_Query( 'post_type=revistas' );
    				while ( $query->have_posts() ) {
    					$query->the_post();
    					$id = get_the_ID();
    					$selected = "";
    
    					if($id == $revista_id){
    						$selected = ' selected="selected"';
    					}
    					echo '<option' . $selected . ' value=' . $id . '>' . get_the_title() . '</option>';
    				}
    			echo "</select>";
    		}
    
    		// register 'metada' metaboxes
    		add_meta_box(
    			'articulo-meta-data',    		// Unique CSS ID
    			esc_html__( 'Metadata', '' ), // Title
    			'articulos_metadata',   		// Callback function to display meta box information
    			'articulos',         			// Admin page (or post type)
    			'side',         					// Context
    			'default'         				// Priority
    		);
    		// show 'metada' metaboxes on admin
    		function articulos_metadata($post, $box) {
    			//obtener los valores de los metaboxes
    			$numero_articulo = get_post_meta($post->ID, '_numero-articulo', true);
    			$autor = get_post_meta($post->ID, '_autor', true);
    			//nonce for security
    			wp_nonce_field(plugin_basename(__FILE__), 'articulos_save_custom_meta_boxes');
    			//numero de artículo
    			echo '<p><label for="numero-articulo">n° artículo:</label>
    					<input type="number" name="numero-articulo" id="numero-articulo" value="'.esc_attr($numero_articulo).'" style="float:right;">
    					</p>';
    			//autor
    			echo '<p><label for="autor">Autor:</label>
    					<input type="text" name="autor" id="autor" value="'.esc_attr($autor).'" style="float:right;">
    					</p>';
    		}
    	}
    	// registrar_metaboxes()
    
    	// SALVAR METABOXES INFO
    	function salvar_metaboxes_info($post_id) {
    
    		// Guardar datos de metaboxes
    		if ( isset($_POST['numero-articulo']) ) {
    
    			// if auto saving skip saving our meta box data
    			if ( defined( 'DOING AUTOSAVE' ) && DOING_AUTOSAVE )
    				return;
    
    			//check nonce for security
    			check_admin_referer( plugin_basename(__FILE__), 'articulos_save_custom_meta_boxes');
    
    			//save the meta box data as post meta using the post ID as a unique prefix
    			update_post_meta( $post_id, '_numero-articulo', sanitize_text_field( $_POST['numero-articulo'] ) );
    			update_post_meta( $post_id, '_autor', sanitize_text_field( $_POST['autor'] ) );
    		}	
    
    		// Guardar datos de subtitulo
    		if ( isset($_POST['subtitulo-articulo']) ) {
    
    			// if auto saving skip saving our meta box data
    			if ( defined( 'DOING AUTOSAVE' ) && DOING_AUTOSAVE )
    				return;
    
    			//check nonce for security
    			check_admin_referer( plugin_basename(__FILE__), 'articulos_save_custom_meta_boxes');
    
    			//save the meta box data as post meta using the post ID as a unique prefix
    			update_post_meta( $post_id, '_subtitulo-articulo', sanitize_text_field( $_POST['subtitulo-articulo'] ) );
    		}
    	}
    	// salvar_metaboxes_info()
    ?>

    The blog I need help with is: (visible only to logged in users)

  • Unknown's avatar

    Just a suggestion when you go over to WordPress.ORG – DON’T post all the code in the forum – they used to have a recommended place to post long things (I want to say pastebin – but not sure – been a while)

    The site you are asking about does not seem to be hosted on WordPress.COM so you need to make friends over at WordPress.ORG the keepers of the software you are using.

    https://en.forums.wordpress.com/topic/7-things-to-know-before-posting-in-wordpresscom-forums?replies=1

    This site is for support of sites hosted on WordPress.COM. You should address your questions to WordPress.ORG the keepers of the software you are using: http://wordpress.org/support/

    The forum at WordPress.ORG is not connected to WordPress.COM so you will need to open an account at .ORG if you do not already have one. You may use the same email at WordPress.ORG as you do at WordPress.COM.

    For more on the difference: http://support.wordpress.com/com-vs-org/

    If you are asking for help with a WordPress.COM site then we need a link to that site to give you accurate help.

  • The topic ‘Unexpected end of file (plugin)’ is closed to new replies.