Search code examples
phpwordpresswordpress-themingbbpress

WordPress independent functions.php


I have a fresh WordPress and bbPress installed on an internal server.

While I was setting up bbPress I wanted to test the functionalities like creating a forum, topic, etc. When doing these stuff in the back-end (dashboard) there didn't seem to be any problems but when I did it from the front-end I kept getting

ERROR: Are you sure you wanted to do that?

I searched for a solution and found this.

add_filter( 'bbp_verify_nonce_request_url', 'my_bbp_verify_nonce_request_url', 999, 1 );
function my_bbp_verify_nonce_request_url( $requested_url )
{
  return 'http://localhost:8888' . $_SERVER['REQUEST_URI'];
}

I simply changed the hard-coded URL to what our internal server is set up to and it fixed the problem.


Now my question: is it possible for me to add this solution to a functions.php that is independent of the theme being used? I asked this because I have 2 concerns:

  • The current theme might get updated and will overwrite the file

I'm aware that the solution to this is simply create a child theme but my second concern prevents me from doing this.

  • The WordPress administrator might change themes and so both the functions.php file on the main theme and the child theme will stop working

How could I add the solution above so that I don't have to worry about the theme being updated and/or replaced with a new theme in the future? I don't want to keep adding this solution every time the administrator decides to change themes.


Solution

  • If you can't put it in a theme, put it in a Plugin. If you're worried that the plugin will get de-activated make it a Must Use Plugin.

    It's dead simple to create a plugin. Create a file plugin-name.php and place it in a directory wp-content/plugins/plugin-name/. That file should contain the following code:

    <?php
    /*
    Plugin Name: Name Of The Plugin
    Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates
    Description: A brief description of the Plugin.
    Version: The Plugin's Version Number, e.g.: 1.0
    Author: Name Of The Plugin Author
    Author URI: http://URI_Of_The_Plugin_Author
    License: A "Slug" license name e.g. GPL2
    */
    
    add_filter( 'bbp_verify_nonce_request_url', 'my_bbp_verify_nonce_request_url', 999, 1 );
    function my_bbp_verify_nonce_request_url( $requested_url )
    {
      return 'http://localhost:8888' . $_SERVER['REQUEST_URI'];
    }
    

    If you want it to be a must use plugin, put it in wp-content/mu-plugins/ instead of wp-content/plugins.