1

對不起,如果我問愚蠢的問題,因爲我不代碼/ PHP專家?是否可以在主題中自定義短代碼 - 或者 - 將兩個短代碼組合成新的短代碼

我使用gravityview過濾並顯示來自值的重力。

[gravityview ID = 「111」 search_field = 「11」 search_value = 「xyzes」]

現在我要動態地改變search_value 「當前登錄的用戶」

所以我努力使新SHORTCODE但沒有良好的工作還是沒有好主意

add_shortcode('customcode' , 'wp_get_current_user_func'); 

function wp_get_current_user_func($atts) { 
    $current_user = wp_get_current_user(); 

    return do_shortcode('[gravityview id="1111" search_field="16" search_value="$current_user = wp_get_current_user();"]'); 
} 

我的要求請建議我什麼正確的代碼或者是有沒有辦法在後臺我能夠做到的改變主題文件?

非常感謝你提前

回答

0

你已經足夠接近。這裏是你應該怎麼做:

add_shortcode('customcode' , 'wp_get_current_user_func'); 

function wp_get_current_user_func($atts) { 
$current_user = wp_get_current_user(); 
$user_login = $current_user->user_login; 
//return do_shortcode('[gravityview id="1111" search_field="16" search_value=".$user_login."]'); 
$shortcode = sprintf(
'[gravityview id="%1$s" search_field="%2$s" search_value="%3$s"]', 
"1111", 
"16", 
$user_login 
); 
echo do_shortcode($shortcode); 
} 

你人失蹤,從功能檢索$current_user->user_loginwp_get_current_user()

$user_login = $current_user->user_login; 

您還可以打印出其他價值在這個例子:

<?php 
    $current_user = wp_get_current_user(); 
    /** 
    * @example Safe usage: $current_user = wp_get_current_user(); 
    * if (!($current_user instanceof WP_User)) 
    *  return; 
    */ 
    echo 'Username: ' . $current_user->user_login . '<br />'; 
    echo 'User email: ' . $current_user->user_email . '<br />'; 
    echo 'User first name: ' . $current_user->user_firstname . '<br />'; 
    echo 'User last name: ' . $current_user->user_lastname . '<br />'; 
    echo 'User display name: ' . $current_user->display_name . '<br />'; 
    echo 'User ID: ' . $current_user->ID . '<br />'; 
?> 
+0

你好先生傑克我很抱歉以前的疑問,但在檢查所有後,並把代碼,因爲你建議它的工作現在沒有錯誤,但沒有拉數據調試我發現........陣列 ( [field_filters] => Array ( [0] => Array ( [key] => 16 [value] =>。$ user_login。 [操作] =>包含 ) [模式] =>所有 ) ) –

+0

也許你需要刪除的點是這樣,而不是'$ user_login'而不是'$ user_login.' –

+0

喜仍相同 [key] => 16 [value] => $ user_login [operator] =>包含 –