{"id":15460,"date":"2011-09-01T10:27:30","date_gmt":"2011-09-01T08:27:30","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=15460"},"modified":"2011-09-01T10:27:30","modified_gmt":"2011-09-01T08:27:30","slug":"why-you-should-teach-yourself-wordpress-taxonomies","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2011\/09\/01\/why-you-should-teach-yourself-wordpress-taxonomies\/","title":{"rendered":"Why you should teach yourself WordPress taxonomies"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p><a href=\"http:\/\/alexking.org\/blog\/2011\/08\/29\/wordpress-post-meta-taxonomies\">Alex King<\/a> has a blog post describing the major differences between using custom fields and taxonomies in WordPress. \u00a0If you are familiar with the WordPress database, and if you think about it for a couple of minutes, you&#8217;ll probably realize why taxonomies are a better choice than custom fields for those situations where you can use both.<\/p>\n<blockquote><p>The reason to favor a custom taxonomy in these situations has to do with the WordPress database structure. Queries by taxonomy are well optimized as this is a primary front-end presentation feature in WordPress core. Conversely, querying by custom field key and value is slow. The value column in the custom field table is not indexed \u2013 you are basically doing a search through data that is not intended for that purpose.<\/p><\/blockquote>\n<p>The problem is that too many people, even those who are very well familiar with WordPress database structure, never really think about it. \u00a0And since custom fields are an older way of solving problems, many go for them without proper consideration.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>Alex King has a blog post describing the major differences between using custom fields and taxonomies in WordPress. \u00a0If you are familiar with the WordPress database, and if you think about it for a couple of minutes, you&#8217;ll probably realize why taxonomies are a better choice than custom fields for those situations where you can &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2011\/09\/01\/why-you-should-teach-yourself-wordpress-taxonomies\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Why you should teach yourself WordPress taxonomies<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1,18,62,60],"tags":[1559,1057,3012],"keyring_services":[],"class_list":["post-15460","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-technology","category-wordpress","tag-databases","tag-performance","tag-wordpress-plugins"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":13075,"url":"https:\/\/mamchenkov.net\/wordpress\/2010\/08\/03\/convert-wordpress-tag-to-existing-category\/","url_meta":{"origin":15460,"position":0},"title":"Convert WordPress tag to existing category","author":"Leonid Mamchenkov","date":"August 3, 2010","format":false,"excerpt":"By now most people have figured out what is the difference between categories and tags, and which ones to use where. \u00a0But that doesn't necessarily mean that the problems are over. \u00a0Once in a while there is a need to convert from one to another. WordPress provides the tool to\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":11339,"url":"https:\/\/mamchenkov.net\/wordpress\/2008\/08\/19\/sugarcrm-deployment-efforts\/","url_meta":{"origin":15460,"position":1},"title":"SugarCRM deployment efforts","author":"Leonid Mamchenkov","date":"August 19, 2008","format":false,"excerpt":"Since we started working on SugarCRM in the office, one of the hardest tasks that we had was solving the deployment issue.\u00a0 On one hand, SugarCRM comes with some really nice GUI tools, such Studio and Module Builder.\u00a0 On the other hand, the system is large and complex and should\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":11210,"url":"https:\/\/mamchenkov.net\/wordpress\/2008\/05\/29\/toolbox-wordpress-cakephp-sugarcrm-rt\/","url_meta":{"origin":15460,"position":2},"title":"Toolbox : WordPress, CakePHP, SugarCRM, RT","author":"Leonid Mamchenkov","date":"May 29, 2008","format":false,"excerpt":"Over the last couple of years I've been working a lot with these four applications - WordPress, CakePHP, SugarCRM, and RT.\u00a0 Each of these is beautiful in its own way.\u00a0 Each of these tools is an Open Source Software. Each of these tools has a large community. Each of these\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":12308,"url":"https:\/\/mamchenkov.net\/wordpress\/2010\/03\/26\/finally-custom-post-types-in-wordpress-3-0\/","url_meta":{"origin":15460,"position":3},"title":"Finally, custom post types in WordPress 3.0 !","author":"Leonid Mamchenkov","date":"March 26, 2010","format":false,"excerpt":"The rumour has it that WordPress 3.0 will have custom post types built-in.\u00a0 These are excellent news!\u00a0 This means that 90% of all web development companies will be able to drop their own, complex and ugly in-house built systems and switch to WordPress development.\u00a0 And while WordPress code isn't the\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28861,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/10\/15\/documenting-lists-with-swagger\/","url_meta":{"origin":15460,"position":4},"title":"Documenting lists with Swagger","author":"Leonid Mamchenkov","date":"October 15, 2018","format":false,"excerpt":"Swagger is a great tool for documenting APIs.\u00a0 Not only it helps with keeping the documentation complete and up-to-date, but it also provides a handy sandbox for developers to play around with the API directly from the documentation. We use Swagger a lot at work.\u00a0 We've even pushed the bar\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/10\/swagger-500x345.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":11588,"url":"https:\/\/mamchenkov.net\/wordpress\/2009\/06\/16\/custom-uploads-directory-for-wordpress-uploads\/","url_meta":{"origin":15460,"position":5},"title":"Custom uploads directory for WordPress uploads","author":"Leonid Mamchenkov","date":"June 16, 2009","format":false,"excerpt":"Tip 0 in this list of tips for a fresh WordPress installation mentions how to configure a custom uploads directory.\u00a0 By default, uploads go into wp-content\/uploads\/ folder, but you can easily change that in your administration.\u00a0 The tip gives to benefits for moving your uploads somewhere else: Image URLs become\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/15460","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=15460"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/15460\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=15460"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=15460"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=15460"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=15460"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}