Custom post type permalink endpoint

A couple things. First, your function names need to be prefixed with something unique. WordPress is a big ecosystem, and someone else has probably used all the generic function names you can think of. Second, add_rewrite_endpoint takes care of adding query variables for you. So you don’t need this: add_filter( ‘query_vars’, ‘add_query_vars’); function add_query_vars($vars){ $vars[] … Read more

WordPress Rewrite Rules for Custom Post Type and Taxonomy

Hope this can solve your problem function my_custom_post_type() { $labels = array( ‘name’ => _x(‘Projects’, ‘post type general name’), ‘singular_name’ => _x(‘Project’, ‘post type singular name’), ‘add_new’ => _x(‘Add New’, ‘project item’), ‘add_new_item’ => __(‘Add New Project’), ‘edit_item’ => __(‘Edit Project’), ‘new_item’ => __(‘New Project’), ‘view_item’ => __(‘View Project’), ‘search_items’ => __(‘Search Projects’), ‘not_found’ => … Read more

Custom rewrite rules for archive page and single post

I found solution! A Monkeyman Rewrite Analyzur plugin was very helpful: https://wordpress.org/plugins/monkeyman-rewrite-analyzer/ So now, I have such working urls… single.php: /magazine-name/issue-year/issue/article-name archive.php: /magazine-name/issue-year/issue /magazine-name/issue-year /magazine-name On a custom post editor page in wp-admin I use Advanced Custom Fields plugin for issue year and issue. You can also define meta fields by yourself. Next I added … Read more

Using custom/dynamic “slug” for a page

Create a Page Template Add a new page and give it the slug stores Add A Public Query Variable add_filter(‘query_vars’, ‘add_state_var’, 0, 1); function add_state_var($vars){ $vars[] = ‘state’; return $vars; } Add a rewrite rule This will direct your request to your stores page. add_rewrite_rule(‘^stores/([^/]*)/?’,’index.php?post_type=page&name=stores&state=$matches[1]’,’top’); Within your Template You can access your state variable as … Read more

How to get pretty URLs with add_query_arg in permalinks

Just faced the same situation and stumbled upon this question while googling. It seems like this isn’t possible. Core itself just appends strings to the URL if pretty permalinks are enabled, see https://core.trac.wordpress.org/browser/tags/3.9.1/src/wp-includes/link-template.php#L571 For anyone interested in this: You can do something like this in your code: if ( ” != get_option(‘permalink_structure’) ) { // … Read more

Two (or more) parallel (sub-)TLDs that are retained when surfing the site / dynamically set the site address?

You could filter the option requests for the host. In your wp-config.php below the line … require_once ABSPATH . ‘wp-settings.php’; … add the following lines: add_filter( ‘pre_option_home’, ‘set_current_host’ ); add_filter( ‘pre_option_siteurl’, ‘set_current_host’ ); function set_current_host() { return ‘http://’ . $_SERVER[‘HTTP_HOST’]; } add_filter() is not available earlier, and you should keep such code in your wp-config.php. … Read more