2012-11-21 3 views
0

프런트 엔드에 일부 포드 항목을 나열하고 싶습니다. 이렇게하려면 보통 pods shortcode를 사용하고 있습니다. 데이터를 필터링하기 위해 포드 내에서 where 속성을 사용합니다. 예 :Wordpress의 포드 프레임 워크를 사용하여 현재 사용자가 만든 포드 항목을 필터링하기 위해 단축 코드 기능을 위임하는 방법

[pods name="salon" where="author.ID = '2'"] 
    <li>{@name}</li> 
[/pods] 

포드 항목을 author.ID으로 필터링하고 싶습니다. 사용자는 직접 만든 포드 항목을보아야합니다. 현재 사용자는 워드 프레스 API global $current_user;에 액세스 할 수 있습니다. 또한 포드 {@user.ID}의 마술 태그를 사용하여 가져올 수도 있습니다. 나는이 문제를 극복 할 수있는 방법을 찾고 있어요

[pods name="salon" where="author.ID = '{@user.ID}'"] 

:

는 그러나 문제는 이와 같은 단축 코드 안에 PHP 코드 나 마법 태그를 사용할 수 있습니다.

나는 어쩌면 내가 현재 사용자의 ID를 취득하고 이와 같은 pods 단축 코드 함수를 호출 할 수있는 새로운 단축 코드 기능을 쓸 수 있습니다 생각 :

function pods_by_current_user($atts) { 
    $current_user = wp_get_current_user(); 
    $user_id = $current_user->ID; 
    // put it into 'where' attribute and delegate to the "pods" function 

이 올바른 방식이라고 생각하십니까 이 문제를 해결 하시겠습니까? 그리고 $user_id$atts에 넣고 나머지는 pods shortcode 함수에 위임하는 방법을 알고 있습니까?

$atts[ 'where' ] = 'author.ID = ' . (int) $user_id;

을 한 후 정상 포드 단축 코드 반환 : 당신 pods_by_current_user 기능에서

답변

1

, 일을 시도

return pods_shortcode($atts);

이 당신이 정상 [포드] 중 하나를 사용하게됩니다 shortcode 속성은 평소와 같지만 자동으로 현재 사용자 ID로 제한하는 '위치'를 설정합니다. 이걸 좀 더 복잡하게 만들 수는 있지만, 그건 네가 한 일을 할거야.

+1

대단히 감사합니다. 이것은 실제로 효과가있었습니다. 그냥 작은 수정 하나를 추가해야합니다. 위임 된 함수에 대한 호출은'$ content' 변수'return pods_shortcode ($ atts, $ content); '를 포함해야합니다. 따라서 새로운 shortcode 함수의 선언은 다음과 같아야합니다 :'function pods_by_current_user ($ atts, $ content = null)' –