2017-02-14 2 views
0

이것은 PHP에서 처음 시도한 것입니다. 사용자 정의 메타 데이터를 호출하여 페이지 내용 안에 넣으려면 wordpress에 사용자 정의 단축 코드를 작성하십시오. 그것은함수 출력이 div에 나타나지 않습니다.

function wpsl_staff() { 
echo '<div class="staff">' .wpsl_get_staff(). '</div>'; 
function wpsl_get_staff() { 

없이되는 단축 코드와 잘 작동

add_shortcode('wpsl_staff', 'wpsl_get_staff'); 

출력은 정확하지만 출력이 다른 모든 컨텐츠 위 페이지 상단에 게재 나는 브라우저에서 검사 할 때 div 또는 클래스 ID가 없으며 방금 텍스트로 나타납니다. 어떻게 이것을 div에 싸서 이드에게 내용 페이지에 제대로 표시되도록했는지 (이는 2 개의 이미지와 다른 짧은 코드 사이에 표시되어야 함) 이전에 클래스 ID를 부여하고 div에 나타나도록 만들었지 만 출력은 여전히 ​​이미지 위의 페이지 맨 위와 다른 짧은 코드에 나타납니다.

<?php 
function wpsl_get_staff() { 
global $post; 
$queried_object = get_queried_object();{ 

$Manager = get_post_meta($queried_object->ID, 'wpsl_Manager', true); 
if (!empty($Manager)) return 'Manager : ' .$Manager . "<br>"; 
     else {} 

$Assitant = get_post_meta($queried_object->ID, 'wpsl_Assistant_Manager', true); 
if (!empty($Assistant)) return 'Assistant Manager : ' .$assistant . "<br>"; 
     else {} 

$Agent = get_post_meta($queried_object->ID, 'wpsl_Agent', true); 
if (!empty($Agent)) return 'Agent : ' .$Agent . "<br>"; 
     else {} 
} 
} 

function wpsl_staff() { 
echo '<div class="staff">' .wpsl_get_staff(). '</div>'; 

} 
add_shortcode('wpsl_staff', 'wpsl_dio_staff'); 

감사

  • TOCA

답변

0

단축 코드 기능은 직접 출력되지, 반환 결과로 생각된다.

function wpsl_staff() { 
    return '<div class="staff">' .wpsl_get_staff(). '</div>'; 
} 

편집 : 한 함수에서 하나 개의 값을 반환 할 수 있습니다 -, 그래서 당신의 wpsl_get_staff이 세 가지 유형에 대한 데이터를 반환하도록되어 있다면, 먼저 문자열 변수로 데이터를 조립 필요 다음과 같이 함수의 마지막에 반환하십시오.

function wpsl_get_staff() { 
    global $post; 
    $queried_object = get_queried_object(); 
    $output = ''; 

    $Manager = get_post_meta($queried_object->ID, 'wpsl_Manager', true); 
    if (!empty($Manager)) { 
    $output .= 'Manager : ' .$Manager . "<br>"; 
    } 

    $Assitant = get_post_meta($queried_object->ID, 'wpsl_Assistant_Manager', true); 
    if (!empty($Assistant)) { 
    $output .= 'Assistant Manager : ' .$assistant . "<br>"; 
    } 

    $Agent = get_post_meta($queried_object->ID, 'wpsl_Agent', true); 
    if (!empty($Agent)) { 
    $output .= 'Agent : ' .$Agent . "<br>"; 
    } 

    return $output; 
} 
+0

나는 리턴을 사용할 때 페이지에 출력이없는 반면 에코는 올바른 출력을 보여 주지만 (출력은 올바른 위치) –

+0

_ "반면 에코는 correc t 출력 (올바른 장소에 출력이 나타나지 않지만) "_ - 예, 에코를 사용하고 있기 때문에 잘못된 위치에 표시됩니다. 이 코드는 내용이 조립되기 전에 실행되므로 에코를 사용하면 "타이밍"이 잘못됩니다. 당신이 반환과 함께 출력을하지 않으면, 다른 뭔가 잘못되어야합니다. 생성 된 HTML 출력을 검사하여 디버깅을 시작합니다. – CBroe

+0

죄송합니다. 당신이 나에게 보여준 것처럼 리턴을 사용하면 관리자 출력이 페이지에 올바르게 나타나지만 다른 2는 전혀 나타나지 않습니다. –

관련 문제