diff --git a/core/modules/forum/src/Form/ForumForm.php b/core/modules/forum/src/Form/ForumForm.php
index 4641781..6a6769e 100644
--- a/core/modules/forum/src/Form/ForumForm.php
+++ b/core/modules/forum/src/Form/ForumForm.php
@@ -129,7 +129,7 @@ protected function actions(array $form, FormStateInterface $form_state) {
    */
   protected function forumParentSelect($tid, $title) {
     // @todo Inject a taxonomy service when one exists.
-    $parents = taxonomy_term_load_parents($tid);
+    $parents = \Drupal::entityManager()->getStorage('taxonomy_term')->loadParents($tid);
     if ($parents) {
       $parent = array_shift($parents);
       $parent = $parent->id();
@@ -140,7 +140,7 @@ protected function forumParentSelect($tid, $title) {
 
     $vid = $this->config('forum.settings')->get('vocabulary');
     // @todo Inject a taxonomy service when one exists.
-    $children = taxonomy_get_tree($vid, $tid, NULL, TRUE);
+    $children = \Drupal::entityManager()->getStorage('taxonomy_term')->loadTree($vid, $tid, NULL, TRUE);
 
     // A term can't be the child of itself, nor of its children.
     foreach ($children as $child) {
@@ -149,7 +149,7 @@ protected function forumParentSelect($tid, $title) {
     $exclude[] = $tid;
 
     // @todo Inject a taxonomy service when one exists.
-    $tree = taxonomy_get_tree($vid, 0, NULL, TRUE);
+    $tree = \Drupal::entityManager()->getStorage('taxonomy_term')->loadTree($vid, 0, NULL, TRUE);
     $options[0] = '<' . $this->t('root') . '>';
     if ($tree) {
       foreach ($tree as $term) {
diff --git a/core/modules/forum/src/ForumManager.php b/core/modules/forum/src/ForumManager.php
index da0ded6..2a1e0cc 100644
--- a/core/modules/forum/src/ForumManager.php
+++ b/core/modules/forum/src/ForumManager.php
@@ -405,7 +405,7 @@ public function getChildren($vid, $tid) {
       return $this->forumChildren[$tid];
     }
     $forums = array();
-    $_forums = taxonomy_get_tree($vid, $tid, NULL, TRUE);
+    $_forums = \Drupal::entityManager()->getStorage('taxonomy_term')->loadTree($vid, $tid, NULL, TRUE);
     foreach ($_forums as $forum) {
       // Merge in the topic and post counters.
       if (($count = $this->getForumStatistics($forum->id()))) {
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateTaxonomyTermTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateTaxonomyTermTest.php
index 5cbb3bc..1d99174 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateTaxonomyTermTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateTaxonomyTermTest.php
@@ -99,7 +99,7 @@ public function testTaxonomyTerms() {
       }
       else {
         $parents = array();
-        foreach (taxonomy_term_load_parents($tid) as $parent) {
+        foreach (\Drupal::entityManager()->getStorage('taxonomy_term')->loadParents($tid) as $parent) {
           $parents[] = (int) $parent->id();
         }
         $this->assertIdentical($values['parent'], $parents);
diff --git a/core/modules/node/src/Tests/NodeAccessPagerTest.php b/core/modules/node/src/Tests/NodeAccessPagerTest.php
index 6d1f90c..87b422a 100644
--- a/core/modules/node/src/Tests/NodeAccessPagerTest.php
+++ b/core/modules/node/src/Tests/NodeAccessPagerTest.php
@@ -78,7 +78,7 @@ public function testForumPager() {
     $this->assertTrue($vid, 'Forum navigation vocabulary ID is set.');
 
     // Look up the general discussion term.
-    $tree = taxonomy_get_tree($vid, 0, 1);
+    $tree = \Drupal::entityManager()->getStorage('taxonomy_term')->loadTree($vid, 0, 1);
     $tid = reset($tree)->tid;
     $this->assertTrue($tid, 'General discussion term is found in the forum vocabulary.');
 
diff --git a/core/modules/taxonomy/src/Entity/Term.php b/core/modules/taxonomy/src/Entity/Term.php
index 7a1cc5f..5a96269 100644
--- a/core/modules/taxonomy/src/Entity/Term.php
+++ b/core/modules/taxonomy/src/Entity/Term.php
@@ -64,10 +64,10 @@ public static function postDelete(EntityStorageInterface $storage, array $entiti
     // See if any of the term's children are about to be become orphans.
     $orphans = array();
     foreach (array_keys($entities) as $tid) {
-      if ($children = taxonomy_term_load_children($tid)) {
+      if ($children = \Drupal::entityManager()->getStorage('taxonomy_term')->loadChildren($tid)) {
         foreach ($children as $child) {
           // If the term has multiple parents, we don't delete it.
-          $parents = taxonomy_term_load_parents($child->id());
+          $parents = \Drupal::entityManager()->getStorage('taxonomy_term')->loadParents($child->id());
           if (empty($parents)) {
             $orphans[] = $child->id();
           }
diff --git a/core/modules/taxonomy/src/Form/OverviewTerms.php b/core/modules/taxonomy/src/Form/OverviewTerms.php
index 9e7e391..4c9f378 100644
--- a/core/modules/taxonomy/src/Form/OverviewTerms.php
+++ b/core/modules/taxonomy/src/Form/OverviewTerms.php
@@ -388,9 +388,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
     $hierarchy = TAXONOMY_HIERARCHY_DISABLED;
 
     $changed_terms = array();
-    // @todo taxonomy_get_tree needs to be converted to a service and injected.
-    //   Will be fixed in http://drupal.org/node/1976298.
-    $tree = taxonomy_get_tree($vocabulary->id(), 0, NULL, TRUE);
+    $tree = \Drupal::entityManager()->getStorage('taxonomy_term')->loadTree($vocabulary->id(), 0, NULL, TRUE);
 
     if (empty($tree)) {
       return;
diff --git a/core/modules/taxonomy/src/Plugin/Field/FieldType/TaxonomyTermReferenceItem.php b/core/modules/taxonomy/src/Plugin/Field/FieldType/TaxonomyTermReferenceItem.php
index 898c9de..7f51dd7 100644
--- a/core/modules/taxonomy/src/Plugin/Field/FieldType/TaxonomyTermReferenceItem.php
+++ b/core/modules/taxonomy/src/Plugin/Field/FieldType/TaxonomyTermReferenceItem.php
@@ -86,7 +86,7 @@ public function getSettableOptions(AccountInterface $account = NULL) {
       $options = array();
       foreach ($this->getSetting('allowed_values') as $tree) {
         if ($vocabulary = Vocabulary::load($tree['vocabulary'])) {
-          if ($terms = taxonomy_get_tree($vocabulary->id(), $tree['parent'], NULL, TRUE)) {
+          if ($terms = \Drupal::entityManager()->getStorage('taxonomy_term')->loadTree($vocabulary->id(), $tree['parent'], NULL, TRUE)) {
             foreach ($terms as $term) {
               $options[$term->id()] = str_repeat('-', $term->depth) . $term->getName();
             }
diff --git a/core/modules/taxonomy/src/Plugin/views/filter/TaxonomyIndexTid.php b/core/modules/taxonomy/src/Plugin/views/filter/TaxonomyIndexTid.php
index 573448d..9bb60f7 100644
--- a/core/modules/taxonomy/src/Plugin/views/filter/TaxonomyIndexTid.php
+++ b/core/modules/taxonomy/src/Plugin/views/filter/TaxonomyIndexTid.php
@@ -177,7 +177,7 @@ protected function valueForm(&$form, FormStateInterface $form_state) {
     }
     else {
       if (!empty($this->options['hierarchy']) && $this->options['limit']) {
-        $tree = taxonomy_get_tree($vocabulary->id(), 0, NULL, TRUE);
+        $tree = \Drupal::entityManager()->getStorage('taxonomy_term')->loadTree($vocabulary->id(), 0, NULL, TRUE);
         $options = array();
 
         if ($tree) {
diff --git a/core/modules/taxonomy/src/TermForm.php b/core/modules/taxonomy/src/TermForm.php
index daa2868..ae9105b 100644
--- a/core/modules/taxonomy/src/TermForm.php
+++ b/core/modules/taxonomy/src/TermForm.php
@@ -23,7 +23,7 @@ public function form(array $form, FormStateInterface $form_state) {
     $vocab_storage = $this->entityManager->getStorage('taxonomy_vocabulary');
     $vocabulary = $vocab_storage->load($term->bundle());
 
-    $parent = array_keys(taxonomy_term_load_parents($term->id()));
+    $parent = array_keys(\Drupal::entityManager()->getStorage('taxonomy_term')->loadParents($term->id()));
     $form_state->set(['taxonomy', 'parent'], $parent);
     $form_state->set(['taxonomy', 'vocabulary'], $vocabulary);
 
@@ -34,13 +34,14 @@ public function form(array $form, FormStateInterface $form_state) {
       '#weight' => 10,
     );
 
-    // taxonomy_get_tree and taxonomy_term_load_parents may contain large
+    // \Drupal::entityManager()->getStorage('taxonomy_term')->loadTree and 
+    // \Drupal::entityManager()->getStorage('taxonomy_term')->loadParents may contain large
     // numbers of items so we check for taxonomy.settings:override_selector
     // before loading the full vocabulary. Contrib modules can then intercept
     // before hook_form_alter to provide scalable alternatives.
     if (!$this->config('taxonomy.settings')->get('override_selector')) {
-      $parent = array_keys(taxonomy_term_load_parents($term->id()));
-      $children = taxonomy_get_tree($vocabulary->id(), $term->id());
+      $parent = array_keys(\Drupal::entityManager()->getStorage('taxonomy_term')->loadParents($term->id()));
+      $children = \Drupal::entityManager()->getStorage('taxonomy_term')->loadTree($vocabulary->id(), $term->id());
 
       // A term can't be the child of itself, nor of its children.
       foreach ($children as $child) {
@@ -48,7 +49,7 @@ public function form(array $form, FormStateInterface $form_state) {
       }
       $exclude[] = $term->id();
 
-      $tree = taxonomy_get_tree($vocabulary->id());
+      $tree = \Drupal::entityManager()->getStorage('taxonomy_term')->loadTree($vocabulary->id());
       $options = array('<' . $this->t('root') . '>');
       if (empty($parent)) {
         $parent = array(0);
diff --git a/core/modules/taxonomy/src/Tests/TaxonomyTermIndentationTest.php b/core/modules/taxonomy/src/Tests/TaxonomyTermIndentationTest.php
index 0e40c1e..0ce1e47 100644
--- a/core/modules/taxonomy/src/Tests/TaxonomyTermIndentationTest.php
+++ b/core/modules/taxonomy/src/Tests/TaxonomyTermIndentationTest.php
@@ -56,7 +56,7 @@ function testTermIndentation() {
     $this->assertPattern('|<div class="js-indentation">&nbsp;</div>|');
 
     // Check explicitly that term 2's parent is term 1.
-    $parents = taxonomy_term_load_parents($term2->id());
+    $parents = \Drupal::entityManager()->getStorage('taxonomy_term')->loadParents($term2->id());
     $this->assertEqual(key($parents), 1, 'Term 1 is the term 2\'s parent');
 
     // Move the second term back out to the root level.
@@ -73,7 +73,7 @@ function testTermIndentation() {
 
     // Check explicitly that term 2 has no parents.
     \Drupal::entityManager()->getStorage('taxonomy_term')->resetCache();
-    $parents = taxonomy_term_load_parents($term2->id());
+    $parents = \Drupal::entityManager()->getStorage('taxonomy_term')->loadParents($term2->id());
     $this->assertTrue(empty($parents), 'Term 2 has no parents now');
   }
 
diff --git a/core/modules/taxonomy/src/Tests/TermKernelTest.php b/core/modules/taxonomy/src/Tests/TermKernelTest.php
index 6692775..2b8cdc7 100644
--- a/core/modules/taxonomy/src/Tests/TermKernelTest.php
+++ b/core/modules/taxonomy/src/Tests/TermKernelTest.php
@@ -113,11 +113,11 @@ public function testTaxonomyVocabularyTree() {
      * ------ term[3] | depth: 3
      */
     // Count $term[1] parents with $max_depth = 1.
-    $tree = taxonomy_get_tree($vocabulary->id(), $term[1]->id(), 1);
+    $tree = \Drupal::entityManager()->getStorage('taxonomy_term')->loadTree($vocabulary->id(), $term[1]->id(), 1);
     $this->assertEqual(1, count($tree), 'We have one parent with depth 1.');
 
     // Count all vocabulary tree elements.
-    $tree = taxonomy_get_tree($vocabulary->id());
+    $tree = \Drupal::entityManager()->getStorage('taxonomy_term')->loadTree($vocabulary->id());
     $this->assertEqual(8, count($tree), 'We have all vocabulary tree elements.');
 
     // Count elements in every tree depth.
diff --git a/core/modules/taxonomy/src/Tests/TermTest.php b/core/modules/taxonomy/src/Tests/TermTest.php
index 083e28b..20bd51a 100644
--- a/core/modules/taxonomy/src/Tests/TermTest.php
+++ b/core/modules/taxonomy/src/Tests/TermTest.php
@@ -94,22 +94,22 @@ function testTaxonomyTermHierarchy() {
     $this->drupalPostForm('taxonomy/term/' . $term2->id() . '/edit', $edit, t('Save'));
 
     // Check the hierarchy.
-    $children = taxonomy_term_load_children($term1->id());
-    $parents = taxonomy_term_load_parents($term2->id());
+    $children = \Drupal::entityManager()->getStorage('taxonomy_term')->loadChildren($term1->id());
+    $parents = \Drupal::entityManager()->getStorage('taxonomy_term')->loadParents($term2->id());
     $this->assertTrue(isset($children[$term2->id()]), 'Child found correctly.');
     $this->assertTrue(isset($parents[$term1->id()]), 'Parent found correctly.');
 
     // Load and save a term, confirming that parents are still set.
     $term = Term::load($term2->id());
     $term->save();
-    $parents = taxonomy_term_load_parents($term2->id());
+    $parents = \Drupal::entityManager()->getStorage('taxonomy_term')->loadParents($term2->id());
     $this->assertTrue(isset($parents[$term1->id()]), 'Parent found correctly.');
 
     // Create a third term and save this as a parent of term2.
     $term3 = $this->createTerm($this->vocabulary);
     $term2->parent = array($term1->id(), $term3->id());
     $term2->save();
-    $parents = taxonomy_term_load_parents($term2->id());
+    $parents = \Drupal::entityManager()->getStorage('taxonomy_term')->loadParents($term2->id());
     $this->assertTrue(isset($parents[$term1->id()]) && isset($parents[$term3->id()]), 'Both parents found successfully.');
   }
 
@@ -134,8 +134,8 @@ function testTaxonomyTermChildTerms() {
         $edit['parent'] = $term1->id();
       }
       $term = $this->createTerm($this->vocabulary, $edit);
-      $children = taxonomy_term_load_children($term1->id());
-      $parents = taxonomy_term_load_parents($term->id());
+      $children = \Drupal::entityManager()->getStorage('taxonomy_term')->loadChildren($term1->id());
+      $parents = \Drupal::entityManager()->getStorage('taxonomy_term')->loadParents($term->id());
       $terms_array[$x] = Term::load($term->id());
     }
 
@@ -245,7 +245,7 @@ function testNodeTermCreationAndDeletion() {
     foreach ($terms as $term) {
       $this->assertText($term, 'The term appears on the node preview.');
     }
-    $tree = taxonomy_get_tree($this->vocabulary->id());
+    $tree = \Drupal::entityManager()->getStorage('taxonomy_term')->loadTree($this->vocabulary->id());
     $this->assertTrue(empty($tree), 'The terms are not created on preview.');
 
     // taxonomy.module does not maintain its static caches.
@@ -460,7 +460,7 @@ function testTermReorder() {
     // Fetch the created terms in the default alphabetical order, i.e. term1
     // precedes term2 alphabetically, and term2 precedes term3.
     \Drupal::entityManager()->getStorage('taxonomy_term')->resetCache();
-    list($term1, $term2, $term3) = taxonomy_get_tree($this->vocabulary->id(), 0, NULL, TRUE);
+    list($term1, $term2, $term3) = \Drupal::entityManager()->getStorage('taxonomy_term')->loadTree($this->vocabulary->id(), 0, NULL, TRUE);
 
     $this->drupalGet('admin/structure/taxonomy/manage/' . $this->vocabulary->id() . '/overview');
 
@@ -485,7 +485,7 @@ function testTermReorder() {
     $this->drupalPostForm(NULL, $edit, t('Save'));
 
     \Drupal::entityManager()->getStorage('taxonomy_term')->resetCache();
-    $terms = taxonomy_get_tree($this->vocabulary->id());
+    $terms = \Drupal::entityManager()->getStorage('taxonomy_term')->loadTree($this->vocabulary->id());
     $this->assertEqual($terms[0]->tid, $term2->id(), 'Term 2 was moved above term 1.');
     $this->assertEqual($terms[1]->parents, array($term2->id()), 'Term 3 was made a child of term 2.');
     $this->assertEqual($terms[2]->tid, $term1->id(), 'Term 1 was moved below term 2.');
@@ -497,7 +497,7 @@ function testTermReorder() {
     $this->assertUrl('admin/structure/taxonomy/manage/' . $this->vocabulary->id() . '/overview');
 
     \Drupal::entityManager()->getStorage('taxonomy_term')->resetCache();
-    $terms = taxonomy_get_tree($this->vocabulary->id(), 0, NULL, TRUE);
+    $terms = \Drupal::entityManager()->getStorage('taxonomy_term')->loadTree($this->vocabulary->id(), 0, NULL, TRUE);
     $this->assertEqual($terms[0]->id(), $term1->id(), 'Term 1 was moved to back above term 2.');
     $this->assertEqual($terms[1]->id(), $term2->id(), 'Term 2 was moved to back below term 1.');
     $this->assertEqual($terms[2]->id(), $term3->id(), 'Term 3 is still below term 2.');
@@ -527,8 +527,8 @@ function testTermMultipleParentsInterface() {
     $this->assertEqual($edit['name[0][value]'], $term->getName(), 'Term name was successfully saved.');
     $this->assertEqual($edit['description[0][value]'], $term->getDescription(), 'Term description was successfully saved.');
     // Check that the parent tid is still there. The other parent (<root>) is
-    // not added by taxonomy_term_load_parents().
-    $parents = taxonomy_term_load_parents($term->id());
+    // not added by \Drupal::entityManager()->getStorage('taxonomy_term')->loadParents().
+    $parents = \Drupal::entityManager()->getStorage('taxonomy_term')->loadParents($term->id());
     $parent = reset($parents);
     $this->assertEqual($edit['parent[]'][1], $parent->id(), 'Term parents were successfully saved.');
   }
diff --git a/core/modules/taxonomy/taxonomy.module b/core/modules/taxonomy/taxonomy.module
index c247d14..1e29f76 100644
--- a/core/modules/taxonomy/taxonomy.module
+++ b/core/modules/taxonomy/taxonomy.module
@@ -174,7 +174,7 @@ function taxonomy_theme() {
  *   An integer that represents the level of the vocabulary's hierarchy.
  */
 function taxonomy_check_vocabulary_hierarchy(VocabularyInterface $vocabulary, $changed_term) {
-  $tree = taxonomy_get_tree($vocabulary->id());
+  $tree = \Drupal::entityManager()->getStorage('taxonomy_term')->loadTree($vocabulary->id());
   $hierarchy = TAXONOMY_HIERARCHY_DISABLED;
   foreach ($tree as $term) {
     // Update the changed term with the new parent value before comparison.
diff --git a/core/modules/taxonomy/taxonomy.tokens.inc b/core/modules/taxonomy/taxonomy.tokens.inc
index 08c5c89..b6218ba 100644
--- a/core/modules/taxonomy/taxonomy.tokens.inc
+++ b/core/modules/taxonomy/taxonomy.tokens.inc
@@ -133,7 +133,7 @@ function taxonomy_tokens($type, $tokens, array $data = array(), array $options =
           break;
 
         case 'parent':
-          if ($parents = taxonomy_term_load_parents($term->id())) {
+          if ($parents = \Drupal::entityManager()->getStorage('taxonomy_term')->loadParents($term->id())) {
             $parent = array_pop($parents);
             $replacements[$original] = String::checkPlain($parent->getName());
           }
@@ -146,7 +146,7 @@ function taxonomy_tokens($type, $tokens, array $data = array(), array $options =
       $replacements += $token_service->generate('vocabulary', $vocabulary_tokens, array('vocabulary' => $vocabulary), $options);
     }
 
-    if (($vocabulary_tokens = $token_service->findWithPrefix($tokens, 'parent')) && $parents = taxonomy_term_load_parents($term->id())) {
+    if (($vocabulary_tokens = $token_service->findWithPrefix($tokens, 'parent')) && $parents = \Drupal::entityManager()->getStorage('taxonomy_term')->loadParents($term->id())) {
       $parent = array_pop($parents);
       $replacements += $token_service->generate('term', $vocabulary_tokens, array('term' => $parent), $options);
     }
