2016-04-26 74 views
0

修改我的地盤我在以下頁面:錨是由當前頁面的URL

mysite.com/especialidad/ensenanza/formacion-profesional/?region=alava

的包含頁面的PHP模板的相關部分是:

<?php 
    /* Get the Queried Object */ 
    $term = get_queried_object(); 

    $enlace_especialidad = get_term_link($term); 

    /* Get the Queried Object */ 
    $user_query = new WP_User_Query(
     array(
      'meta_key' => 'especialidad_preparador', 
      'meta_value' => $term->term_id, 
      'number' => 100, 

      'meta_query' => $meta_query, 
     ) 
    ); 
?> 
<?php echo $enlace_especialidad; ?> 
<h1 class="titulo_taxonomia">Preparadores de Oposiciones a <a href="<?php $enlace_especialidad ?>"><?php echo $term->name ?></a> 
<?php 
    if ($_GET['region']) { 
     $taxonomia_region = get_term_by('slug', $_GET['region'], 'region'); 

     echo 'en <a href="'. get_term_link($taxonomia_region) .'">'. $taxonomia_region->name .'</a>'; 
    } 
?> 

當我附和變量$ enlace_especialidad(只是爲了檢查它的值)的結果是:

mysite.com/especialidad/ensenanza/formacion-profesional/

相反,這指的是URL的一部分:Preparadores德Oposiciones一個<a href="<?php $enlace_especialidad ?>"><?php echo $term->name ?></a>鏈接:

mysite.com/especialidad/ensenanza/formacion-profesional/ ?region = alava

問題是?region = alava不在var $ enlace_especialidad中,我不知道它在錨點中的使用方式。另一方面,它是當前頁面的URL,我想這裏必須有一個關係。

+0

'$ taxonomia_region-> name'添加到您的錨標記 – RiggsFolly

回答

2

最後的編輯

你忘了鏈接之前呼應,所以其錨固失效。這就是爲什麼你之前看到印刷輸出不一致的原因。


?region=alava是在這裏,因爲它是一個請求$_GET與區域作爲參數的結果。所以它是你的URL部分的補充。

所以您的網址是蠻好的,在其它附加部分在此處理,然後部分:

<?php 
    if ($_GET['region']) { 
     $taxonomia_region = get_term_by('slug', $_GET['region'], 'region'); 

     echo 'en <a href="'. get_term_link($taxonomia_region) .'">'. $taxonomia_region->name .'</a>'; 
    } 
?> 

get_term_link($taxonomia_region)該部分包含是否存在$_GET['region']結果部分。

見$ _GET文檔: http://php.net/manual/en/reserved.variables.get.php

編輯

我們在意見討論後,有一個與此方法的差異,當您使用參數的不同類型,即get_term_link($term);get_term_link($taxonomia_region);

由於該術語可以是一個對象,整數或字符串,因此可以將s 您傳入的任何數字都明確轉換爲整數 (例如:(int)$ term_id)。否則,函數將假定 $ term是一個段塞而不是術語ID。

這就是爲什麼你得到mysite.com/especialidad/ensenanza/formacion-profesional/get_term_link($taxonomia_region);,因爲你傳遞一個slug作爲參數。

而你得到mysite.com/especialidad/ensenanza/formacion-profesional/?region=alavaget_term_link($term);,因爲你傳遞一個對象作爲參數。

來源https://developer.wordpress.org/reference/functions/get_term_link/

+0

你好文森特G,我不明白。以下代碼如果($ _GET ['region']){<?php $ taxonomia_region = get_term_by('slug',$ _GET ['region'],'region'); echo'en '. $taxonomia_region->name .''; } ?>'用以下URL輸出錨點:mysite.com/region/alava/。所以,我想這應該輸出mysite.com/especialidad/ensenanza/formacion-profesional/的代碼的第一部分,沒有別的。 –

+0

我認爲這是因爲'get_queried_object()'函數。嘗試使用函數'get_permalink()'來檢索URL:https://developer.wordpress.org/reference/functions/get_permalink/ 你說你在這個頁面上'mysite.com/especialidad/ensenanza/ formacion-profesional /?region = alava',所以當你將鏈接懸停時,你會得到相同的URL?嘗試刪除網址中的參數,然後再次懸停鏈接。 –

+0

我沒有看到關係,get_term_link($ taxonomia_region)等於mysite.com/region/alava/,但在錨中使用時未被修改。雖然get_term_link($ term)等於mysite.com/especialidad/ensenanza/formacion-profesional/正在被修改。 –