我想爲我的多作者網站上的每位作者創建一個自定義作者頁面。 (我正在使用Wordpress的創世紀框架。)如何在PHP中傳遞參數(Wordpress,Genesis)
有兩個任務:1.從數據庫動態檢索作者信息2.使用鉤子顯示它。我對第1部分沒有任何問題,但是試圖通過鉤子傳遞信息,讓它顯示在頁面上我想要的位置,這讓我難住了。
我的方法是創建一個author.php文件。這是我到目前爲止有:
<?php
// this is the function I want to use to output my stuff.
function include_author_info($author_info) {
echo $author_info;
}
// now we want to add this action to the Genesis loop
add_action('genesis_before_loop', 'include_author_info', 5, 1);
// now I populate the data I will feed to the function
// first: set curauth based on the current author
$curauth = (isset($_GET['author_name'])) ? get_user_by('slug', $author_name) : get_userdata(intval($author));
// next: store the curauth name
$user_name = $curauth->display_name;
// additionally: store the user bio for the curauth
$user_bio = $curauth->user_description;
// concatenate the name and bio into one formatted string
$formatted_user_info = "<h2> " . $user_name . "</h2><br /><p>" . $user_bio . "</p>";
// for testing purposes, I output the concatenated and formatted name/bio
echo $formatted_user_info;
// finally, I execute the action
do_action('include_author_info', $formatted_user_info);
//* Run the Genesis loop
genesis();
我知道我正確地檢索作者姓名和作者的生物,還因爲測試線輸出正是我想要的信息正確格式化顯示。 (網站在這裏是可見的:http://difficultrun.nathanielgivens.com/author/nathaniel/)
但是,實際的函數(include_author_info)絕對是nada。這似乎是世界上最簡單的事情,我只想將一個字符串傳遞給該函數並輸出它。這是一個1行功能。但它不會工作。我可以輸出一個常量,如「你好,世界!」或任何我想要它去的地方,但我無法通過論證。
我已經要求在Genesis論壇(沒有運氣)的幫助,並做了研究。我發現這兩個頁面的幫助,但他們並沒有解決我的問題: can I pass arguments to my function through add_action? http://codex.wordpress.org/Function_Reference/do_action
預先感謝任何幫助。
你打電話與do_action的功能,並且還試圖與genesis_before_loop鉤來執行呢?我的猜測是,它正在通過鉤子執行,並沒有任何參數傳遞給它。如果你要通過掛鉤來執行你的函數,你能否刪除參數並在函數體中檢索作者信息? – clhereistian
>>你是否用do_action調用函數,並試圖用genesis_before_loop鉤子執行它?<< 我研究過的東西表明,如果你想傳遞參數,你必須先做一個add_action,然後再做一個do_action ,其中參數實際上來自do_action。所以,這就是我想要做的。 >>你可以刪除參數並檢索作者信息在你的函數體?<< 這是我3周前開始的地方,但它從來沒有這樣做過。我不知道$ curauth行是否在函數的上下文中不起作用,或者它是顯示問題。 –