Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save netconstructor/1662430 to your computer and use it in GitHub Desktop.
Save netconstructor/1662430 to your computer and use it in GitHub Desktop.
Pseudo-elegant way to flush rewrite rules after creating a custom post type.
<?php
/**
* Example for writing a WP plugin that adds a custom post type and flushes
* rewrite rules only once on initialization.
*/
/**
* On activation, we'll set an option called 'my_plugin_name_flush' to true,
* so our plugin knows, on initialization, to flush the rewrite rules.
*/
function my_plugin_name_activation() {
add_option('my_plugin_name_flush', 'true');
}
register_activation_hook( __FILE__, 'my_plugin_name_activation' );
/**
* On deactivation, we'll remove our 'my_plugin_name_flush' option if it is
* still around. It shouldn't be after we register our post type.
*/
function my_plugin_name_deactivation() {
delete_option('my_plugin_name_flush');
}
register_deactivation_hook( __FILE__, 'my_plugin_name_deactivation' );
/**
* Register our post type. Specifically, we'll check if our
* 'my_plugin_name_flush' option is true. If so, we'll flush the rewrite rules,
* then delete the option, so it only flushes the rules once.
*/
function my_plugin_name_register_post_types() {
// Register code for your new post type here...
// register_post_type( 'custom_post_type_name', $customPostTypeDefs );
// Check the option we set on activation.
if (get_option('my_plugin_name_flush') == 'true') {
flush_rewrite_rules();
delete_option('my_plugin_name_flush');
}
}
add_action( 'init', 'my_plugin_name_register_post_types' );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment