2017-10-16 89 views
1

我想在init鉤子中獲取當前網頁的頁面。但他們什麼都沒有回報我的代碼是。如何在init鉤子中使用get_permalink()

function mship_access_level() { 
    global $wpdb; 
    global $post; 
    $slug = basename(get_permalink()); 
    echo get_permalink(); 
    exit; 

} 
add_action('init', 'mship_access_level'); 
+1

「請注意,當在不帶ID參數的帖子頁面(索引,存檔等)上使用The Loop以外的循環時,它將返回The Loop中最後一篇文章的URL,而不是當前頁面的永久鏈接。 [從這裏](https://developer.wordpress.org/reference/functions/get_permalink/) - 還請注意,這些值可能不會在init中設置,也許你必須從查詢中檢索id – Kaddath

+0

有沒有其他選擇解決方案@Kaddath? – Coder

+0

這已經很長一段時間了,我還沒有做到這一點,我沒有在這裏的代碼部分,嘗試看看https://developer.wordpress.org/reference/functions/get_queried_object_id/ – Kaddath

回答

1

你可以試試這個下面的代碼永久

<?php 
function mship_access_level() { 
    global $wpdb; 
    global $post; 
    $slug = basename(get_permalink(get_the_ID())); 
    echo get_permalink(get_the_ID()); 
    exit; 

} 
add_action('init', 'mship_access_level'); 
?> 
+0

謝謝@shital。不工作 – Coder

+0

您可以直接在您的頁面循環中放置代碼「<?php echo get_permalink(get_the_ID());?>」,但不能使用上述功能。 –

+0

wokring在page.php的主題,但不工作,我想在哪裏:) – Coder

0
<?php 
function mship_access_level() { 
    global $wpdb; 
    global $post; 
    $slug = basename(get_permalink($post->ID)); 
    echo get_permalink($post->ID); 
    exit; 

} 
add_action('init', 'mship_access_level'); 
?> 

請嘗試這一個也。

+0

謝謝。實際上$ post是空的。意思是什麼都不返回 – Coder

+0

我認爲你需要包含「include_once($ _ SERVER ['DOCUMENT_ROOT']。'/wp-config.php');」在你的PHP文件中。 –

+0

意思是你想要顯示的地方。 –