2012-03-08 3 views
0
$actions = array(
    'EDIT' => sprintf('<a href="admin-ajax.php?action=%s&subaction=%s&course_id=%d" class="%s" id="%s">Edit</a>', 
        'abf_cm', 
        'edit_course', 
        $item['course_id'], 
        'thickbox edit-box', 
        'edit_'.$item['course_id'] 
        ), 
    'DELETE' => sprintf('<a href="?page=%s&task=%s&action=%s&bookid=%s&noheader=true">Delete</a>','course_management','do_process','delete',$item['course_id']), 
); 

이렇게하면 편집 부분이 표시되지 않습니다. 잘못된 것이 있습니다. 또한 여전히 자리 PHP sprintf가 예상대로 작동하지 않습니다.

'EDIT' => sprintf('<a href="admin-ajax.php?action=%1$s&subaction=%2$s&course_id=%4$d" class="%4$s" id="%5$s">Edit</a>', 
        'abf_cm', 
        'edit_course', 
        $item['course_id'], 
        'thickbox edit-box', 
        'edit_'.$item['course_id'] 
        ), 

하지만 결과를 사용하여 시도했다. 이전 버전에서 class 및 id 특성을 제거하면 올바르게 작동합니다.

제게 이것에 대한 만족스러운 설명을하고 제 잘못을 어디에서 말해 줄 수 있습니까?

편집 : 글쎄, 그 이상은 언급하지만 난 하나 사용할 때 코드가 작동합니다

function column_course_name($item) { 

    //Build row actions 
    $actions = array(
     'EDIT'  => sprintf('<a href="admin-ajax.php?action=%s&subaction=%s&course_id=%d" class="%s" id="%s">Edit</a>', 
         'abf_cm', 
         'edit_course', 
         $item['course_id'], 
         'thickbox edit-box', 
         'edit_'.$item['course_id'] 
         ), 
     'DELETE' => sprintf('<a href="?page=%s&task=%s&action=%s&bookid=%s&noheader=true">Delete</a>','book_management','do_process','delete',$item['course_id']), 
    ); 

    //Return the title contents 
    return sprintf('<a href="?page=book_management&action=viewnedit&bookid=%2$s">%1$s</a>%3$s', 
     /*$1%s*/ strlen($item['course_name'])>0?$item['course_name']:'<span style="color:silver">(No Name)</span>', 
     /*$2%s*/ $item['course_id'], 
     /*$3%s*/ $this->row_actions($actions) //row_actions is a method in this class 
    ); 
} 

갱신 WP_List_Table 클래스를 사용하여 사용자 정의 테이블을 만들기위한 워드 프레스 내부에이를 사용하여 클래스 (즉, 내가 태그의 두 클래스 사이의 공백을 삭제할 때).

의견이 있으십니까?

+0

"표시되지 않음"? 어떤 코드도 아무 것도 표시하지 않습니다. –

+0

"표시되지 않는다"는 의미는 무엇입니까? 그'sprintf' 콜은 무엇을 반환합니까? – deceze

+0

코드가 완벽하게 작동합니다. – FMCorz

답변

0

Dipesh, 코드에서 오류가있을 수 있습니다. 약자.

코드를 별도로 확인하십시오. 나는 약간의 셋업과 별도의 .PHP 스크립트 코드를 복사하여 다음과 같이 print_r$actions 배열을 확인 : 나는 콘솔에서이 스크립트를 실행

<?php 
$item = array(); 
$item['course_id'] = 1; 
$actions = array(
    'EDIT' => sprintf('<a href="admin-ajax.php?action=%s&subaction=%s&course_id=%d" class="%s" id="%s">Edit</a>', 
     'abf_cm', 
     'edit_course', 
     $item['course_id'], 
     'thickbox edit-box', 
     'edit_'.$item['course_id'] 
    ), 
    'DELETE' => sprintf('<a href="?page=%s&task=%s&action=%s&bookid=%s&noheader=true">Delete</a>','course_management','do_process','delete',$item['course_id']), 
); 

print_r($actions); 

edit_array.php하고있어 다음과 같은 결과 :

$ php edit_array.php 
Array 
(
    [EDIT] => <a href="admin-ajax.php?action=abf_cm&subaction=edit_course&course_id=1" class="thickbox edit-box" id="edit_1">Edit</a> 
    [DELETE] => <a href="?page=course_management&task=do_process&action=delete&bookid=1&noheader=true">Delete</a> 
) 
$actions['EDIT']에 대한

생성 된 링크가 하나가 안전하게 코드 자체가 잘 작동하는지 결론을 내릴 수 있도록, HTML은 유효하며, 에러 리 다른 곳에서.

관련 문제