Community Forums › Forums › Archived Forums › Design Tips and Tricks › How to locate the index.php file??
Tagged: index.php file
- This topic has 23 replies, 3 voices, and was last updated 8 years, 5 months ago by Eric_238.
-
AuthorPosts
-
October 24, 2015 at 4:13 pm #168928Eric_238Member
I am trying to add a static welcome message to my blog home page. In order to do so I know I need to add a line of code to the theme's index.php file just before the start of the Loop.
My problem is I can't locate the index.php file. When I go to Appearance > Editor I see functions.php, customize.php, page_landing.php and style.css.
How do I access the index.php file and the Loop?
Thanks!!
October 24, 2015 at 5:36 pm #168935PorterParticipantA few things:
First off, ideally you'd have access to your server, likely through FTP, and you wouldn't be using the WordPress dashboard to make any edits (always a bad idea, as you don't have a backup, and if you break anything PHP related, it's messy). If you were to log in, you'd find files you could edit at /wordpress/wp-content/themes/your_theme, and you really shouldn't edit much if anything outside of that.
Secondly, there are various ways to accomplish what you're looking for, without touching index.php, as you should never, ever touch that file.
One of the beautiful aspects of Genesis, is the Hooks and Filters portion of the architecture. If you view the Hook link, you'll see all of the available hooks you can use. Read more about those to understand how they work, but they can let you place any content, anywhere, which you can do from functions.php, a plugin, etc. Here is a very rough example of how to do what you want:
function home_welcome_genesis() { if(is_front_page()) { echo('your static text here'); } }
Change 'your static text here' to whatever you want your message to be, and place that code in functions.php. If you need to style that particular text in any way, wrap the "echo" section in a div with a css class, and apply css in style.css to give it a particular look.
Other ways to accomplish this are to use a specific page template for your home page, or to add a widget area. Google either of those solutions if the above doesn't work for you, as it's a bit more complex than I can explain in a single response.
October 25, 2015 at 9:22 am #168968Eric_238MemberWell . . thank you for the reply, but I think my impatience may have resulted in a problem. I tried to add the code you provided to the functions.php as you mentioned, but now my site is down. I am getting the following error -
"The site may be down for maintenance or configured incorrectly."
Any idea what to do now?!
Thank you for your help.
October 25, 2015 at 9:25 am #168969PorterParticipantDo you have FTP access to your server? If not, how do you access your files? The good news is the "broken" aspect is extremely easy to fix, you just need access to the server.
Side note, this is why you never live edit through WordPress - I really wish they would remove that feature.
October 25, 2015 at 9:39 am #168971Eric_238MemberI am just editing everything through the WP Admin - Appearance > Editor. How do I get FTP access?
Sorry, I'm pretty new to this. Thanks for the help!
October 25, 2015 at 9:41 am #168972PorterParticipantYeah, I figured that's how you were, and I was saying I wish WordPress would remove that system entirely, or create a better version of it, as it let's beginners / people not being careful temporarily break the site through a PHP error.
Hard to say if you don't know yourself, so let's narrow things down. Who is your host? Host Gator, GoDaddy, Dreamhost, etc? How did you install WordPress (one click on an admin panel, drag and drop files to the server, etc)? Explain what you've done thus far to get WordPress even running, who your host is, etc, and that'll help determine how you can see your files.
October 25, 2015 at 9:45 am #168973Eric_238MemberBluehost. I just did the quick 5-minute WP install with them.
October 25, 2015 at 9:55 am #168974PorterParticipantSo you were likely using cPanel, correct? you go to a web address, log in, and you have a visual dashboard with a bunch of options, one of which was likely the 5 minute install process. If that's the case, you can set up FTP from there, though that's not 100% beginner friendly (though I highly recommend you follow a tutorial on setting it up, and only update files through FTP (download Filezilla, or follow a tutorial using Filezilla).
If you are using cPanel, you should see something called "File Manager" under the Files category. If you go in there, you should be able to navigate to /your-site/wordpress/wp-content/themes/your-theme/, (the beginning might be public_html/your-site, not sure), and there you'll see all of the files for your theme. If you're here, you'll see your functions.php (among other files, such as style.css), and you can copy that file to your desktop. Once you have the file on your desktop, open it, and copy and paste the contents to pastebin (and share the link with me), and I'll edit the file to no be broken, and you can then upload the file back to the server using "file manager" where you got the file from in the first place.
This is essentially the long way of getting files on and off your server, where as FTP programs (such as filezilla) simply allow you to connect to the server (logging in using info you set up), and then it's like browsing files on your computer, except it's the files on your server. You can then drag and drop files, keep a local copy on your computer, and if anything goes wrong (like right now), simply fix the local copy, and drag and drop the fix as if it was on your computer.
I know the above is a lot, but let me know if you have any question, and if you can get through it all. Worst case scenario, you can email me your bluehost login info, and I'll fix it for you, best case, you follow the above, and end up with FTP setup from here on out.
October 25, 2015 at 4:01 pm #168990Eric_238MemberThank you! Stay tuned . .
October 26, 2015 at 4:22 pm #169132Eric_238MemberAgain . . . thank you!! I believe you should be able to access the function.php code here.
At the bottom you can see where I added the new code you provided. That is when it broke. I'd be curious to know what the problem was.
Thanks!
October 26, 2015 at 4:32 pm #169137Eric_238MemberAgain, thank you!! You can see the functions.php code at the link below -
You can see where I added the code that you gave me at the bottom. I'd be interested to know what went wrong.
Thanks!
October 26, 2015 at 5:59 pm #169146Victor FontModeratorThe way you have the function commented will produce an error. The comment tag //* only comments a single line of code. The rest of the function is still exposed to PHP but will generate an error. If you want to comment out the entire clock of code, you have to wrap it all in opening and closing comment tags:
/* function home_welcome_genesis() { if( is_front_page() || is_home() ) { echo 'your static text here'; } } */
Also, echo is language construct and not a function that requires parens.
If this message is static, you should probably use a widget or apply the message to a hook. The home page is front-page.php in your child theme's directory.
Regards,
Victor
https://victorfont.com/
Call us toll free: 844-VIC-FONT (842-3668)
Have you requested your free website audit yet?October 27, 2015 at 9:21 am #169216Eric_238MemberThank you. So should I just update the functions.php file with the code that you provided?
My theme does not have a static 'Welcome Message' widget. How would I apply it to a hook?
October 28, 2015 at 9:14 am #169352Eric_238MemberBumping this to see if I can get some help . . . any clarification on what to do next is greatly appreciated.
October 28, 2015 at 9:19 am #169357PorterParticipantYes, you should update your functions.php. To make it clear, what you have in your file with /* is commenting out the first line, meaning that first line doesn't exist, which makes the closing } on the last line break your PHP, which breaks the site. I gave you that code to add some static text, so you wouldn't want to comment it out, which means there should be no */ at all. Simply remove what is there (the part I gave you), and add this:
function home_welcome_genesis() { if( is_front_page() || is_home() ) { echo 'your static text here'; } }
Once fixed, upload functions.php back to your server through the file manager, FTP, or whatever you're using, and you should see "your static text here" on the home page.
October 28, 2015 at 10:35 am #169365Eric_238MemberThank you!!
October 28, 2015 at 12:30 pm #169378Eric_238MemberOk . . my site now works, so thank you, but the message is not displaying. I have my front page set to display my Latest Posts not a static page. Is that the issue? I want this message to appear as an ever-present item before my blog post listings. So when someone visits the site they see:
Header,
Static Message, then
Blog Postsin that order.
Make sense?
October 28, 2015 at 1:01 pm #169381PorterParticipantWoops, forgot the hook:
add_action('genesis_before_content', 'home_welcome_genesis'); function home_welcome_genesis() { if(is_front_page() || is_home()) { echo('your static text here'); } }
The only change is that top line, copy and paste the entire thing, or just add that one bit, doesn't matter.
That is going to put the message on your front page, and the text will be just above your first post, as we're using the "genesis_before_content" filter. There's also "genesis_after_header", but that would align the text to the far left of the page, and not aligned with your posts / centered of screen, as it wouldn't get the css of the structural wraps. This is why I said you may want to wrap the echo in a div to style the css a bit more.
While this will certainly work, you can also add a widgetized area, which isn't any better, but maybe easier for you to visualize / understand. If you'd like to do that, remove the previous code entirely (try it though, so if it works, just to learn), then add this code to the same function.php file:
//* Regiester the widget area, this simply makes it exist. genesis_register_sidebar( array( 'id' => 'yourname-after-header', 'name' => __( 'YourName After Header', 'themename' ), 'description' => __( 'This is a widget area that can be placed after the post', 'themename' ), ) ); /* This displays the actual widget area, if conditions are met (on the front page or home), using a hook (we're using after_header). Change "genesis_after_header" right below this, to use a different hook. Try "genesis_before_content" if you wish.*/ add_action( 'genesis_after_header', 'yourname_after_header_widget' ); function yourname_after_header_widget() { if (is_front_page() || is_home()) { genesis_widget_area( 'yourname-after-header', array( 'before' => '<div class="after-header widget-area">', 'after' => '</div>', ) ); } }
Once that is added (and you update the file on the server), you'll see a new widget area named "YourName Before Header". If you look through the code, it's pretty easy to see how to customize it, and how to rename elements (such as that name).
October 28, 2015 at 2:45 pm #169389Eric_238MemberOk, great. Now I can see it. I want to "wrap the echo in a div" to provide some style. I tried to add
<blockquote>
to match the rest of the site, but apparently I didn't do it right. I added:<blockquote>echo('your static text here')</blockquote>;
Where do I place the code to style it?
October 28, 2015 at 2:51 pm #169393PorterParticipantWrap it with:
?><div class="your-css-class"><?php echo("blah blah); ?></div><?php
You need to close the php to add the div, then open it back up, which is what that jumbled mess above is. You then edit style.css to create whatever css you want. If you already have classes, simply apply them in the div in place of "your-css-class", and separate various classes with spaces.
-
AuthorPosts
- The forum ‘Design Tips and Tricks’ is closed to new topics and replies.