Amazon AWS Route 53 and Custom Nameservers

Amazon AWS Route 53 and Custom Nameservers

I was previously running my own DNS servers and operating my own custom DNS failover solution, before deciding to switch to Amazon’s AWS Route 53 service, in hopes to provide better network reliability.  Let me tell you, this service is awesome. Completely worth it. Improved network reliability and faster DNS lookups.

The first thing I wanted to do was to setup my “primary domain” which would also be configured with the nameservers (as subdomains) to used by any additional sites in my “network”. That way, each additional domain in my network can be configured to use the same nameservers. It’s just easier for organization and consistency. Plus, I like to have multiple “networks” which have a relative purpose.

So I think, no big deal… Right? AWS Route 53 has a nice web GUI to manage your DNS records. I just create a new “hosted zone”, for my “primary domain”. Start configuring all the necessary DNS records. Once everything was completed, I began to setup a hosted zone for each individual sub site in my network, using the subdomain based nameservers specified in my primary domain.

After creating the hosted zones, and configuring all the DNS records for the primary domain and all subsites in my network, I came to realize that the only site which was resolving properly was the primary site. None of the other sites in my network were resolving. I began to scratch my head, thinking “What did I do wrong?”. Surely, I thought I had done everything perfectly. That’s when I decided to look into the documentation for AWS Route 53.

I found this article “Configuring White Label Name Servers“. (Pretty deep into the documentation by the way.)

AWS Documentation » Amazon Route 53 » Developer Guide » Configuring DNS to Route Traffic » Working with Public Hosted Zones » Configuring White Label Name Servers

I quickly breezed through the documentation, thinking… I did everything 100% correctly according to this article. Why is it not working? Well, I should have slowed down just a tad and actually read it carefully from top to bottom.

Turns out, that if you create a new “Hosted Zone” through the AWS Route 53 web GUI, it assigns a different “delegation set” (a/k/a — Different nameservers) for EACH HOSTED ZONE. A/K/A AGAIN the custom nameservers configured in the primary domain’s record sets are useless.

The only way you can have custom nameservers with AWS Route 53 is by using the AWS CLI or other methods described below.

To configure white label name servers for your Amazon Route 53 hosted zones

Create an Amazon Route 53 reusable delegation set by using the Amazon Route 53 API, the AWS CLI, or one of the AWS SDKs.

I totally missed that the first time through. Which lead me to find out more about the AWS CLI. I downloaded the program, and ran the installer. Then, when I opened the AWS CLI program, it would just instantly close itself on my Windows 10 computer. I came to find out that, the AWS CLI integrates itself into the Windows command prompt program.

You need to open cmd.exe. But before you can begin using the AWS CLI, you need to configure it to use your Amazon account. To do this, you need to first make sure you already have an Amazon AWS account. Then, visit this article "Getting Set Up with the AWS Command Line Interface". Once you've setup an IAM user and set appropriate permissions (I just searched for "route53" in the permissions area and applied all permissions related to AWS Route 53.).

Once you’ve got your IAM user setup and configured, now you need to input the information into the cmd.exe. Read this article “Configuring the AWS Command Line Interface“.

NOW, FINALLY… Time to get to all the good stuff. Actually properly configuring custom nameservers with AWS Route 53.

So once you have the AWS CLI configured to connect to your Amazon account, through cmd.exe, NOW you can start to configure your domains properly using a syntax like: aws <service> <command>


Step 1 – Start over. Delete all hosted zones.

Step 2 – Create the reusable delegation set. In cmd.exe type aws route53 create-reusable-delegation-set --caller-reference <caller-reference>

  • The caller reference is like a comment (i think) to refer to this group of nameservers.
  • A reusable delegation set is like a group of the same nameservers.

Step 3 – Take note of the delegation set ID and nameservers.

Step 4 – Create a hosted zone for the “primary domain”, using the delegetion set ID you just took note of. aws route53 create-hosted-zone --delegation-set-id /delegationset/<DELEGATION SET ID HERE> --name <domain-here-example.com> --caller-reference <caller-refernce>

  • Again, the caller reference is a way to refer to this specific hosted zone.

Step 5 – Follow this article (Configuring White Label Name Servers), in setting up your custom nameservers in your record sets for the primary domain. Use the nameservers you took note on in Step 3.

Step 6 – Repeat Step 4 for each additional site in your network. Make sure you specify a unique caller-set for each hosted zone.


 

Of course make sure you make necessary hostname/nameserver adjustments @ primary domain’s registrar, and also for each additional site in your network. I’m not super technically DNS savvy, but I think that’s referred to as “glue records”.

That about wraps it up. If anything was confusing, let me know and I’ll try to clarify things. I wish I had an article to read which walked me through everything step by step. This process was quite the headache for me to figure it out. I hope this saves someone else from headache trauma.

WordPress the_title Filter Hook Generically and Semi-uniquely

WordPress the_title Filter Hook

I ran into a situation where I needed to apply a callback function to the_title filter hook in WordPress. I thought this would be a simple task. After creating my callback function and assigning it to the the_title filter hook, I thought it did exactly what I needed it to do. Except, then I noticed it was also applying the same filter to navigation items as well. Thus, breaking the layout.

How can I target the the_title filter hook while ignoring the filter effect for navigation items?

I was working on a section in a WordPress theme which I wanted to add buttons to the page title within the heading one tag.

It looked similar to this:

I was then “hooking in” like this:

However, the above targets literally everything which calls the_title filter hook, and this includes navigation items.

I changed the filter hook definition like this:

Pretty much every call to the_title filter passes parameter 1 as the $post->post_title and parameter 2 as the $post->ID. Search the WordPress core code for apply_filters( 'the_title'* and you’ll see for yourself.

So I decided to add a third parameter for situations where I want to target specific items which call the_title filter. This way, I can still receive the benefit of all callbacks which apply to the_title filter hook by default, while also having the ability to semi-uniquely target items that use the_title filter hook with the third parameter.

It’s a simple boolean parameter:

Label the variables however you want. This is what worked for me, and it does exactly what I need it to do.

Hope this helps someone in a similar situation.

Credits

Original question asked by @softsdev on stackoverflow: Why the_title() filter is also applied in menu title?
Answer to Question: Why the_title() filter is also applied in menu title? by @Michael Ecklund on stackoverflow.

Related Questions

This article assists in answering all of the following related questions:

  1. [stackoverflow] Apply the_title filter to post titles AND backend auto social-sharing plugin, but not nav menu asked by: @Andre Bulatov
  2. [WordPress Development] Apply the_title filter to post titles AND backend auto social-sharing plugin, but not nav menu asked by: @Andre Bulatov
  3. [WordPress Development] How to append to title via functions.php for auto-posting plugin  asked by: @Andre Bulatov
  4. [WordPress Development] Alter only the page title, not the post titles within asked by: @Mayeenul Islam
  5. [WordPress Development] Changing document title only on a custom page template asked by: @V Neal
  6. [WordPress Development] How to append text to title of Custom Post Type post (without affecting all titles on page)? asked by: @k998
  7. [WordPress Development] filter the_title problem in nav asked by: @greenbandit

Migrating WordPress Standalone Into Existing Multisite Network

Migrating WordPress Standalone Into Existing Multisite Network

There are more than likely multiple ways of migrating WordPress on an existing Standalone installation of WordPress into an existing Multisite installation of WordPress. However, this is my way of performing this task. Hope this post helps someone!

I would like to start off immediately by stating, I’m not 100% sure on a good solution for migrating wp_users and wp_usermeta database tables from a Standalone installation into an already existing user base on the Multisite installation. I just recreate the users manually. So if you have a large user base, I cannot currently provide any advice on migrating users.

There’s an idea where you use the WordPress Importer plugin to import your content. Upon importing the content, if the user doesn’t exist, the user is created automatically by the WordPress Importer plugin. I’ve used the importer before, but not for the purpose of migrating users. Not saying this is a good solution for migrating users, just saying it’s a possibility which you could try if migrating users is something which is important to you and your website(s).


Migrating WordPress Standalone Installation with WordPress Multisite Installation

Before You Begin:

  1. Create a new site in your Multisite Network, which will be the site you’re migrating from the Standalone installation. (Take note of the site ID #, you’ll need it later.)
  2. You need to make sure that all of the users from the Standalone installation, are created and exist in the Multisite installation.

Step 1 – Backup Databases.

Find the directory on your Web Server which the the Standalone copy of WordPress is installed and the directory on your Web Server which the Multisite copy of WordPress is installed and open the wp-config.php file of both installations. Locate the PHP constant DB_NAME. It contains the name of the database that particular installation of WordPress is using.

  1. Backup the Standalone instillation’s database.
  2. Backup the Multisite installation’s database.

Step 2 – Identify the Database Table Prefixes.

By default the database table prefix is wp_.

If you can’t identify the database table prefix just by examining the database. You can look in the base directory of your WordPress installation and open the wp-config.php file of the site in question and look for a line like $table_prefix = 'wp_';.

Step 3 – Export Databases. Import Into Local Environment.

On a local Database Server, create a temporary database for each of these databases. Perhaps to keep things simple, label one database “standalone“, and the second one “multisite“.

  1. Import the Standalone installation’s database (which you just exported) into the “standalone” database (which you just created) on your local Database Server.
  2. Import the Multisite installation’s database (which you just exported) into the “multisite” database (which you just created) on your local Database Server.

Step 4 – Search and Replace.

This is the step where you would likely replace any necessary URL changes. (http to https), (non-www to www), (add or remove directories from URL), etc.

Perform this task on the “standalone” database you created on your local Database Server.

Remember to change things to how you would like them to be in the Multisite installation (the end result).

For this procedure, you’re going to need a Database Tool:

  1. WP-CLI :: wp search-replace which is all command line.
  2. Alternatively, if you prefer a GUI, there’s the Database Search and Replace Script in PHP by interconnect/it.

Step 4.2 – Users and Post Authors

You’ll want to probably create a note about all the user’s from your Standalone installation and map the old user ID’s to the new user ID’s (from the Multisite installation).

You can simply just create a temporary text file and do something like this:

The numbers on the left are the ID’s from the Standalone installation and the numbers on the right are the ID’s on the Multisite installation.

You’ll then want to update the post_author column of the wp_posts table to update all of the old user ID’s to the new user ID’s. Otherwise when view your migrated site from Standalone to Multisite, you’re going to be one confused kitten. It’s going to say things on your site were posted by random people and probably even people from different sites in your network. This can be catastrophic if overlooked.

For each of the user ID mappings in your text file, you’ll want to issue a command much like this into MySQL:

  • The line SET post_author = '4' is the new user ID (the user ID from the Multisite installation)
  • The line WHERE post_author = '1'; is the old user ID (the user ID from the Standalone installation)

Step 5 – Users and Usermeta

I haven’t really found a good solution for this step yet. I usually just recreate the users manually in the Multisite installation.

In otherwords, I usually just drop two tables wp_users and wp_usermeta.

If anyone would like to improve on this step feel free to comment.

Step 6 – Update Database Table Names

This step is much like Step 4.

You’ll want to map old table names to new table names in the “standalone” database on your local Database Server.

This is the step where you will need to know the site ID # from your Multisite installation.

As an example: If your site ID is 15, and your database table prefix use on your Multisite installation is wp_, then the database table wp_posts would become wp_15_posts.

Here’s the MySQL command you can use to update your database table names:

  • The first line is the old database table name (the database table name from the Standalone installation)
  • The second line is the new database table name (the database table name format to be used in the Multisite installation)

Alternatively, if your database is small enough. You could just export the entire database and open it in a text editor. Then find all & replace. Save it when completed.

Step 7 – Export and Import

Once all of the above changes have been made, export the “standalone” database from your local Database Server.

  1. Import the exported .sql file into the “multisite” database on your local Database Server.
  2. Export the “multisite” database from your local Database Server.
  3. Drop the current Multisite database tables used for your existing Multisite database (not the one on your local Database Server).
  4. Import the .sql file for your “multisite” database you exported from your local Database Server and import it to your database used by your existing Multisite installation (the one you just dropped all the tables from). Essentially just replacing the current Multisite installation’s database with the modified one which contains the newly migrated Standalone site.

Moving Uploads files from ./wp-content/.

Standalone and Multisite store uploaded files differently. Multisite stores them in ./wp-content/sites/{$site_id}/. Make sure you move your uploaded files appropriately as well.


Changing the Primary Site

Look for database table wp_site in your Multisite database. Edit the column id and domain appropriately.

You might need to also edit the site_id column in the wp_blogs table.

Also look in wp-config.php for these lines and once again, adjust them accordingly.


Useful Links


Credits

Original question asked by @Radizzt on WordPress Stack Exchange: moving local database to a multisite wordpress.
Answer to Question: moving local database to a multisite wordpress by @Michael Ecklund on WordPress Stack Exchange.

Related Questions

This article assists in answering all of the following related questions:

  1. [WordPress Development] moving local database to a multisite wordpress asked by: @Radizzt
  2. [WordPress Development] new multisite, old db asked by: @Bchavez.gd
  3. [WordPress Development] migrate comments from old database to new database asked by: @roybatty
  4. [WordPress Development] Copying database tables to new database asked by: @Daniel Morton
  5. [WordPress Development] How to fix unchanged URLs in Database after running serialized search and replace script? asked by: @Barbara
  6. [WordPress Development] Migrating data between local and development server asked by: @Gavin Anderegg
  7. [WordPress Development] How can I migrate from another platform to WordPress (using the same domain) and launch when ready? asked by: @inkedmn
  8. [WordPress Development] Merge two databases: OLD SITE -> NEW SITE asked by: @Salvatore Dibenedetto
  9. [WordPress Development] How to migrate the posts from an old custom legacy blog to a new WordPress website? asked by: @AndreaNobili
  10. [WordPress Development] Migrating Multisite – Database error, missing wp_blogs table asked by: @ThemesCreator
  11. [WordPress Development] Better way to migrate to server? asked by: @Guit4eva
  12. [WordPress Development] 2 website 1 database… Local to online asked by: @Viny76
  13. [WordPress Development] How to change the database prefix in multisite (WPMU) install asked by: @Mike Stumpf

WordPress Template for Post Type with Nested Taxonomy

WordPress Template Hierarchy

This article assumes you have a decent understanding of: the WordPress Template Hierarchy, Registering Custom Post Types, Registering Custom Taxonomies, and attaching Taxonomies to Post Types.

Let’s say you have a Custom Post Type of “Portfolio”, with a rewrite slug of portfolio. So the URL on the frontend is: domain.com/portfolio.

Let’s also say you have a Custom Taxonomy of “Categories”, with a rewrite slug of portfolio/category (attached to your Custom Post Type of “Portfolio”). So the URL on the frontend is: domain.com/portfolio/category/<term-slug>/

With the standard WordPress Template Structure and functionality…

  1. Upon visiting: domain.com/portfolio/ the Post Type template will display just fine.
  2. Upon visiting: domain.com/portfolio/category/<term-slug>/ the Taxonomy Term Template displays just fine.
  3. Upon visiting: domain.com/portfolio/category/ the Taxonomy template doesn’t work. Resulting in a 404 Not Found error.

I’m a believer in all “paths” in the URL structure should resolve to a valid page with relevant content.

  • Referring to #1 above, that can be handled in archive-$posttype.php in the WordPress Template Hierarchy.
  • Referring to #2 above, that can be handled in taxonomy.php in the WordPress Template Hierarchy.
  • Referring to #3 above, that’s not handled at all. There’s no template file in the WordPress Template Hierarchy to handle a “Taxonomy view”.

taxonomy.php in the WordPress Template Hierarchy refers more to the currently viewed “Term” within the “Taxonomy”. Which to me… Is kind of misleading.

So I’ve come up with a few tweaks which allow your WordPress theme to have a term.php AND taxonomy.php in the template structure of your WordPress theme.

  • term.php will handle the currently viewed Term within a Taxonomy (This is basically replacing the default functionality of taxonomy.php template file.).
  • taxonomy.php will handle the currently viewed Taxonomy (Basically redefining it’s default intended purpose.).

This will allow you to have a template for the Taxonomy itself, and another template for Terms in a Taxonomy.

Disclaimer:

I believe I have come up with a temporary solution from random miscellaneous sources online.

I would love for someone to expand on my answer to make it more “bullet proof” so to speak. However, in the short run, this solution DOES work.


Separate WordPress Template Files For Taxonomy Archives and Taxonomy Term Archives

Step 1 – Modify the Current Rewrite Rules Used by WordPress

1.1) We will be adding new rewrite rules to our existing rewrite rules currently being used by WordPress.

 

1.2) Generate new rewrite rules… (I think this area needs some improvement for sure — I’m not savvy with rewrite rules.)

There’s really only one rule that I found is absolutely necessary to make this work. I could be missing other important rewrite rules, but this is the one NECESSARY rewrite rule to make this adjustment to the template structure.

By adding the new rewrite rule, WordPress no longer sees domain.com/portfolio/category/ as a 404, but as a Post Type Archive instead. There’s more work to be done. We can’t leave this URL as a Post Type Archive, because then we will have a conflicting template structure with domain.com/portfolio/ and will result in unexpected behavior.

Step 2 – Modify the Post Type Archive Template File

We need to modify the behavior of the Post Type archive template file to conditionally load the Taxonomy template file instead. This is what’s triggered on domain.com/portfolio/category/

Now if you go to domain.com/portfolio/category/ it loads taxonomy.php from your currently active WordPress theme directory.

Step 3 – Modify the Taxonomy Template File

We need to modify the behavior of the Taxonomy archive template file to conditionally load the Term archive template file instead. This is what’s triggered on domain.com/portfolio/category/<term-slug>/

Now if you go to domain.com/portfolio/category/<term-slug>/ it loads term.php from your currently active WordPress theme directory.

 


Conclusion

  1. When viewing domain.com/portfolio/ – Default archive templates are loaded as usual. (archive.php, archive-$posttype.php, etc) from your currently active WordPress theme.
  2. When viewing domain.com/portfolio/category/ – The taxonomy.php template file is loaded from your currently active WordPress theme.
  3. When viewing domain.com/portfolio/category/<term-slug> – The term.php template file is loaded from your currently active WordPress theme.

You can easily test to see if this works. All you need is three files in your currently active WordPress theme directory.

  1. archive.php or archive-posttype.php
  2. taxonomy.php
  3. term.php

Put this in archive.php or archive-$posttype.php

Put this in taxonomy.php

Put this in term.php

 


Credits

Original question asked by @Michael Ecklund on WordPress Stack Exchange: Custom Post Type with Nested Taxonomy and Template Files.
Answer to Question: Custom Post Type with Nested Taxonomy and Template Files by @Michael Ecklund on WordPress Stack Exchange.

WordPress Stack Exchange

If you have a question related to WordPress, you can asked it on WordPress Stack Exchange and someone will very likely provide an answer or solution to your question or issue.

Related Questions

This article assists in answering all of the following related questions:

  1. [WordPress Development] Custom Post Type with Nested Taxonomy and Template Files asked by: @Michael Ecklund
  2. [WordPress Development] How to modify URL structures in custom post types and taxonomies or terms asked by: @Michael Ecklund
  3. [WordPress Development] Custom post types and permalink asked by: @theplayer777
  4. [WordPress Development] How to change permalink structure for custom post type and it’s taxonomies? asked by: @Mark
  5. [WordPress Development] How to show custom taxonomy in the permalink? asked by: @Lou
  6. [WordPress Development] Change Permalink Structure for Custom Taxonomy asked by: @Saurabh Goel
  7. [WordPress Development] Create permalink structure for one taxonomy archive per custom post type asked by: @jpsingleton
  8. [WordPress Development] Custom Permalink Structure for Custom Post Type, Custom Taxonomy, Under a page asked by: @61Pixels
  9. [WordPress Development] Custom permalink with child taxonomy terms asked by: @Shane
  10. [WordPress Development] Custom Permalinks for Custom Taxonomies/Post Types -> Top Level Pages not working asked by: @luke
  11. [WordPress Development] Custom Post Type and Custom Taxonomy Permalinks asked by: @Rynoceris
  12. [WordPress Development] Custom post type and taxonomy permalinks – Structure asked by: @Lucas Yarid
  13. [WordPress Development] custom post type archive template per custom taxonomy term asked by: @gfaw
  14. [WordPress Development] Custom post type taxonomies URL rewrite asked by: @Jaquis
  15. [WordPress Development] Custom Post Type with two hierarchical Custom Taxonomies: strategy to generate best permalink structure asked by: @Lopinsjk
  16. [WordPress Development] Custom post type, permalinks, taxonomies and blog posts asked by: @T G
  17. [WordPress Development] Taxonomy, Terms, and Template Files asked by: @ariefbayu
  18. [WordPress Development] Custom post types, taxonomies, and permalinks asked by: @RodeoRamsey
  19. [WordPress Development] Which template name to use for taxonomies but not their terms? asked by: @Maikal
  20. [WordPress Development] Custom taxonomy returns 404 asked by: @mihajloWR
  21. [WordPress Development] Custom Taxonomy specific to a Custom Post type asked by: @Saurabh Goel
  22. [WordPress Development] Define permalinks for custom post type by taxonomy in WP 3.4 by: @reekogi
  23. [WordPress Development] How to create a permalink structure with custom taxonomies and custom post types like base-name/parent-tax/child-tax/custom-post-type-name asked by: @Jeff
  24. [WordPress Development] How to setup a Custom Taxonomy Term template asked by: @NM6
  25. [WordPress Development] Need some templating advice for templating with custom post types and taxonomies asked by: @user3905
  26. [WordPress Development] permalink /category/post-name with custom post type and taxonomy asked by: @Owl
  27. [WordPress Development] Permalink structure CPT with custom taxonomy fails asked by: @NielsPilon
  28. [WordPress Development] Rewriting a custom-post-type permalink with taxonomy term? asked by: @mathiregister
  29. [WordPress Development] Shouldn’t this be easy?! Custom post type/custom taxonomy permalink asked by: @fxfuture
  30. [WordPress Development] taxonomy term names in custom post type permalink structure asked by: @wppatrickk
  31. [WordPress Development] Template files for Custom Post Type and Taxonomy asked by: @Paul D
  32. [WordPress Development] Template for Custom Post Type and its Category asked by: @Seyed
  33. [WordPress Development] Templates for Custom Post Types and Custom Taxonomies asked by: @aifrim
  34. [WordPress Development] Permalink structure between 2 custom post types and a taxonomy asked by: @Max Lutz
  35. [WordPress Development] WordPress Custom Permalink Structure with Custom Post Type and Taxonomies asked by: @gleenk

 

Adding Post Types and Taxonomies to Custom Admin Menu Pages

WordPress Admin Menu

Customizing the WordPress admin menu is something you’ll eventually need to or want to do at some point. Customizing admin menus with Post Types is pretty easy compared to Taxonomies.

When you create Custom Post Types and Custom Taxonomies in WordPress using register_post_type(); and register_taxonomy(); there’s a parameter for each function called show_in_menu.

If you look at register_post_type(); the parameter accepts a simple true or false but also accepts a string as an argument for show_in_menu:

show_in_menu
(boolean or string) (optional) Where to show the post type in the admin menu. show_ui must be true.

Default: value of show_ui argument

‘false’ – do not display in the admin menu
‘true’ – display as a top level menu
‘some string’ – If an existing top level page such as 'tools.php' or 'edit.php?post_type=page', the post type will be placed as a sub menu of that.

Note: When using ‘some string’ to show as a submenu of a menu page created by a plugin, this item will become the first submenu item, and replace the location of the top-level link. If this isn’t desired, the plugin that creates the menu page needs to set the add_action priority for admin_menu to 9 or lower.

Note: As this one inherits its value from show_ui, which inherits its value from public, it seems to be the most reliable property to determine, if a post type is meant to be publicly useable. At least this works for _builtin post types and only gives back post and page.

If you look at register_taxonomy(); the parameter accepts a simple true or false but DOESN’T accept a string as an argument for show_in_menu like register_post_type(); does:

show_in_menu
(boolean) (optional) Where to show the taxonomy in the admin menu. show_ui must be true.
Default: value of show_ui argument

‘false’ – do not display in the admin menu
‘true’ – show as a submenu of associated object types

Adding a Custom Post Type to a custom admin menu is simple. Just specify the slug of the custom admin menu as an argument for the show_in_menu parameter while using register_post_type();.

How about adding a Custom Taxonomy to a custom admin menu? That’s a bit tricky to do.

What I’m about to show you works for both Custom Post Types AND Custom Taxonomies. So do with it what you please.

Step 1 – Hook into init and register Custom Post Types and Custom Taxonomies.

 

Step 2 – Hook into admin_menu to create a custom parent admin menu, and add Custom Submenu Admin Pages, Custom Post Type pages, and Custom Taxonomy Pages all to the custom parent admin menu.

 

Step 3 – Hook into parent_file to correctly highlight your Custom Post Type and Custom Taxonomy submenu items with your custom parent menu/page.

If you need any clarification about how any of this works, read the following pages from top to bottom:

  1. Adding Custom Parent Admin Menus
  2. Adding Custom Child Admin Menus
  3. Roles and Capabilities in WordPress
  4. Registering Custom Post Types
  5. Registering Custom Taxonomies
  6. WordPress Plugin API :: Action Reference
  7. WordPress Plugin API :: Action Reference :: init
  8. WordPress Plugin API :: Action Reference :: admin_menu
  9. WordPress Plugin API :: Filter Reference
  10. List of All WordPress Hooks (including actions and filters)

Credits

Original question asked by @numediaweb on WordPress Stack Exchange: Show custom taxonomy inside custom menu.
Answer to Question: Show custom taxonomy inside custom menu by @Michael Ecklund on WordPress Stack Exchange.

Related Questions

This article assists in answering all of the following related questions:

  1. [WordPress Development] Show custom taxonomy inside custom menu asked by: @numediaweb
  2. [WordPress Development] How do I create multiple post types in same menu section in WP-admin? asked by: @Peter Westerlund
  3. [WordPress Development] Show custom taxonomies in admin panel under custom post type asked by: @Eoghan OLoughlin
  4. [WordPress Development] How to add a taxonomy into admin menu asked by: @genuy11512