WooCommerce: Change template for single product page

Woo Commerce is off topic as its a plugin and not specifically related to WordPress but what you can do is copy over the single-product.php template to a WooCommerce folder in your child theme. change the file name and modify the file, then use single_template or template_include with the correct conditional tag. single_template function get_custom_post_type_template($single_template) … Read more

How to force TinyMCE in WordPress to replace newlines with tags and not with  

The answer suggested by GavinR is correct. You don’t need to install the suggested plug-in, though. Just add this mini plugin and you’re set: <?php defined( ‘ABSPATH’ ) OR exit; /* Plugin Name: TinyMCE break instead of paragraph */ function mytheme_tinymce_settings( $tinymce_init_settings ) { $tinymce_init_settings[‘forced_root_block’] = false; return $tinymce_init_settings; } add_filter( ‘tiny_mce_before_init’, ‘mytheme_tinymce_settings’ ); Now … Read more

Hide page visual editor if certain template is selected?

add_action( ‘init’, ‘remove_editor_init’ ); function remove_editor_init() { // If not in the admin, return. if ( ! is_admin() ) { return; } // Get the post ID on edit post with filter_input super global inspection. $current_post_id = filter_input( INPUT_GET, ‘post’, FILTER_SANITIZE_NUMBER_INT ); // Get the post ID on update post with filter_input super global inspection. … Read more

Passing parameters to a custom page template using clean urls

add_rewrite_rule() allows you to turn the pretty url into variables. numbers: (\d*) section: /rid/ or /pageid/ slug: ([a-zA-Z0-9-]+ Here is a class to register the rewrite and handle the request if a match has been found. <?php if ( ! class_exists( ‘CPTURLRewrite’ ) ): class CPTURLRewrite { const ENDPOINT_QUERY_NAME = ‘pageid’; const ENDPOINT_QUERY_PARAM = ‘__pageid’; … Read more

Is it possible to define a template for a custom post type within a plugin independent of the active theme?

You need to use the template_include filter which is the generic filter for all template inclusions. add_filter( ‘template_include’, ‘my_plugin_templates’ ); function my_plugin_templates( $template ) { $post_types = array( ‘project’ ); if ( is_post_type_archive( $post_types ) && ! file_exists( get_stylesheet_directory() . ‘/archive-project.php’ ) ) $template=”path/to/list/template/in/plugin/folder.php”; if ( is_singular( $post_types ) && ! file_exists( get_stylesheet_directory() . ‘/single-project.php’ … Read more