34

Many posts here or somewhere else contain code, but they do not say where to put it.

Example:

I have found this post: How do I turn off 301 redirecting posts (not canonical)?
I'm a newbie with PHP. Where exactly should I place the code from the answer?

  • 1
    I took the liberty to make your question less localized, so we have a post in the future that answers similar questions. If you think that is not okay, use the rollback link in the edit history. – fuxia Nov 11 '12 at 10:35
  • 1
    You could also try leaving a comment on that question and ask there. – JimmyPena Aug 2 '13 at 22:07
34

Whenever you find a piece of code without clear installation instructions it is probably a plugin. The example you gave is a good one, because that is the most common case:

add_action('template_redirect', 'remove_404_redirect', 1);
function remove_404_redirect() {
// do something
}

To use such a snippet, put it into a plugin:

  1. Create a new file, name it for example remove_404_redirect.php.
  2. Write simple plugin headers into the file at the very beginning. Use the URL where you found the code as Plugin URL and the code author as Plugin Author:

    <?php
    /**
     * Plugin Name: Remove 404 redirect
     * Description: Disable redirects to similar posts.
     * Plugin URI:  https://wordpress.stackexchange.com/questions/44740/how-do-i-turn-off-301-redirecting-posts-not-canonical
     * Author:      William
     * Author URI:  https://wordpress.stackexchange.com/users/9942/william
     */
    
  3. Put the code you want to use below the plugin headers.

  4. Install the new plugin.

That’s All Folks.

You could add the code to your theme’s functions.php. But that is not a good idea:

  • Usually, the code is not intended to change the visual representation of your site’s data. But that is the only purpose of a theme. Do not mix responsibilities.
  • Code in the functions.php cannot be turned off separately. If the code breaks one day you have to edit the functions.php again, or you have to switch themes. If you want to use another theme, you have to copy & paste all that code again.
  • If you put more and more snippets into the functions.php you get a unmaintainable mess over time.

Related: Where to put my code: plugin or functions.php?

  • Thank you! It worked like a charm. And thanks for making the post less localized. How do I share my plugin file with others? – Carl Nov 11 '12 at 14:43
  • 1
    You could publish it on wordpress.org or on a free code hosting service like GitHub. But I would ask the author before I’d do that. To indicate that an answer solved your problem click the little check mark ✔ on that answer, so other readers see it immediately. – fuxia Nov 11 '12 at 14:46
  • In making a plugin like this, do I need to put the file in a folder and compress/zip it, or would plugin installer work with a standalone php as well? – OC2PS Oct 13 '13 at 18:34
  • Also, would making a plugin with a simple, single statement like add_filter( 'flush_rewrite_rules_hard', '__return_false' ); work? – OC2PS Oct 13 '13 at 18:34
  • 1
    @OC2PS No, the end of the file is the end of the program. – fuxia Oct 13 '13 at 18:45
16

I'm the developer of plugin which allows you to add code snippets to a WordPress site through an admin interface.

It adds a graphical interface, similar to the Plugins menu, for managing snippets. Snippets can be activated or deactivated, assigned a name and description, and categorised using tags. They can also be backed up and transferred between sites using the import/export feature.

Managing existing snippets

Editing a snippet

More screenshots

You can learn more about the Code Snippets plugin on WordPress.org and see its code on GitHub.

6

The code referred to in the link is to be placed in the functions.php file of your theme, not in canonical.php. You should always avoid modifying core WP files. You don't need to overwrite or comment out any other code.

Make a backup of your functions.php file before editing it, as even a simple syntax error in the functions.php can take down your whole site.

  • I didn't want to modify any core WP files. Thank you for your help. – Carl Nov 11 '12 at 14:55
  • 7
    @Carl He clearly states to not modify core files. Sad that I can't downvote comments... – kaiser Jan 5 '13 at 4:41
2

If you are using Jupiter WordPress Theme, you can do it by adding the code snippets to your child theme functions.php and start overriding the hooks, filters, and shortcodes as described here:

https://themes.artbees.net/docs/overriding-shortcodes/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.