Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

WordPress How to Build a WordPress Plugin Building WordPress Widgets, and Shortcodes Adding AJAX To Plugins on the Front-End

Mark Miller
Mark Miller
45,831 Points

Unexpected End of File in Wordpress plugin.php

There's something wrong with closing the php block right at the start of the php function, then opening a new php block at the end of it. With that, why would the php function admin_url() work within the function my_plugin_enable_ajax() (both are php functions) when the php code block is not running at the moment when the inner php function is called? Why would any of the php work with the block closed? And why am I getting "syntax error, unexpected end of file" every time? There's no way to fix this.

plugin.php
<?php

function my_plugin_frontend_scripts() {
    wp_enqueue_style('my_plugin_frontend_css', plugins_url('my-plugin/css/front-end.css'));

  wp_enqueue_script('my_plugin_frontend_js', plugins_url('my-plugin/js/front-end.js'), $deps = array(jquery), $ver = '', $in_footer = true);
}

add_action('wp_enqueue_scripts', 'my_plugin_frontend_scripts');

function my_plugin_enable_ajax() {?>
<script>var ajaxurl = admin_url('admin-ajax.php');</script>
<?php}

?>

2 Answers

Darryl Holtby
Darryl Holtby
15,648 Points

Remove the closing php tag from your file ?>

It is not required and could cause this message if there are hidden characters after it.

Mark Miller
Mark Miller
45,831 Points

I already tried that. Thanks anyway. I read about this error message out there, using Google search results, and found that suggestion. Tried it, but nope! No luck. I tried a lot of tricks before I posted my complaint/question in the forum. No, removing that last closing tag doesn't make a difference in my attempt to pass this challenge.

Darryl Holtby
Darryl Holtby
15,648 Points

Hi Mark,

I duplicated your issue it's with this line

<?php}

You need a space between <?php and the }

<?php }

Hopefully this does it for you.