I했습니다 내 기능에, 이러한 결합 기능을 사용 .php 파일을 사용하여 테이블의 각 미디어 항목에 대한 미디어 라이브러리 (admin 영역의 upload.php)에 링크를 추가하여 해당 항목을 어떤 항목에 첨부/다시 첨부 할 수 있습니다.
// Functions to allow one to re-attach an image to a post
function upload_columns($columns) {
// Unset($columns['parent']);
$columns['better_parent'] = 'Re-Attach';
return $columns;
}
add_filter('manage_upload_columns', 'upload_columns');
function media_custom_columns($column_name, $id) {
$post = get_post($id);
if($column_name != 'better_parent')
return;
if($post->post_parent > 0) {
if(get_post($post->post_parent)) {
$title = _draft_or_post_title($post->post_parent);
}
?>
<strong><a href="<?php echo get_edit_post_link($post->post_parent); ?>"><?php echo $title ?></a></strong>, <?php echo get_the_time(__('Y/m/d')); ?>
<br />
<a class="hide-if-no-js" onclick="findPosts.open('media[]', '<?php echo $post->ID ?>');return false;" href="#the-list"><?php _e('Re-Attach'); ?></a>
<?php
}else {
?>
<?php _e('(Unattached)'); ?><br />
<a class="hide-if-no-js" onclick="findPosts.open('media[]', '<?php echo $post->ID ?>');return false;" href="#the-list"><?php _e('Attach'); ?></a>
<?php
}
}
add_action('manage_media_custom_column', 'media_custom_columns', 10, 2);
나는 이것이 당신이 묘사하고있는 곳에 옵션을 두지는 않지만, 올바른 방향으로 시작한다는 것을 알고있다.
업데이트 :이 경우 누군가에 위의 코드를 떠날거야
참고는 라이브러리 테이블에 다시 연결 옵션을 가지고 싶어. 귀하의 질문에 관해서는
가 ... 여기 코드, 설명은 다음과 같이하십시오
function my_post_submitbox_misc_actions($id) {
global $pagenow, $typenow;
// We only want to run the code on a specific page
if($pagenow != 'post.php' || $typenow != 'attachment') {
return;
}
$post = get_post($id);
if($post->post_parent > 0) {
if(get_post($post->post_parent)) {
$title = _draft_or_post_title($post->post_parent);
}
?>
<div class="misc-pub-section misc-pub-attachment">
Attached to: <strong><a href="<?php echo get_edit_post_link($post->post_parent); ?>"><?php echo $title ?></a></strong>
(<a class="hide-if-no-js" onclick="findPosts.open('action','find_posts');return false;" href="#"><?php _e('Re-Attach'); ?></a>)
</div>
<?php
} else {
_e('(Unattached)'); ?><br />
<a class="hide-if-no-js" onclick="findPosts.open('action','find_posts');return false;" href="#"><?php _e('Attach'); ?></a>
<?php
}
}
add_action('attachment_submitbox_misc_actions', 'my_post_submitbox_misc_actions');
// Function to call the find_posts_div pop up OUTSIDE the post form
function my_post_submitbox_misc_form() {
global $pagenow, $typenow;
// We only want to run the code on a specific page
if($pagenow != 'post.php' || $typenow != 'attachment') {
return;
}
// Enqueue our scripts
wp_enqueue_style('thickbox');
wp_enqueue_script('thickbox'); // needed for find posts div
wp_enqueue_script('media');
wp_enqueue_script('wp-ajax-response');
?>
<form name="plugin_form" id="plugin_form" method="post" action="/wp-content/themes/<?php echo get_template() . '/test.php'; ?>">
<?php
wp_nonce_field('plugin_nonce');
find_posts_div();
?>
</form>
<?php
}
add_filter('admin_footer','my_post_submitbox_misc_form');
고장
첫 번째 기능은 이미 위의 코드에있는 것과 매우 유사하다. 내가 만든 유일한 변경 사항은 첨부 파일 수정 페이지에서이 코드를 실행하는지 확인하기위한 검사를 추가하는 것입니다. 내가 테스트 한 것처럼 이것을 조정할 필요가 있지만 완전히 조정할 필요는 없습니다.
나는 또한 우리가 findPosts.open()
이라고 부르는 방식을 바 꾸었습니다. 이제 우리는 'action'이라는 변수를 전달하고 'find_posts'에 값을 설정하여 나중에 확인할 수 있습니다 ...
첫 번째 함수는 첨부 파일이 이미 첨부 된 게시물을 표시하고 - 원하는 경우 지정하거나 ... 첨부 옵션 만 보여줍니다. 다시 부착하고 첨부하는 것은 링크 일 뿐이며 클릭 할 때 findPosts.open()
을 실행하면 페이지의 숨겨진 div/입력을 찾습니다. 아직 작성하지 않았습니다.
두 번째 기능은 키입니다 ... 먼저 스크립트와 하나의 스타일을 대기열에 넣어야합니다. 여기서 코드 가져 오기 부분은 find_posts_div()
호출입니다. 이것이 마법을 발생시키는 것입니다. 그러나이 모든 것은 숨겨진 div와 양식 필드를 팝업으로 호출하는 것입니다 (첫 번째 함수에서 우리 앵커). 이것은 add_filter를 사용하여 포스트 폼의 OUTSIDE 함수를 호출 할 수 있도록 별도의 함수로되어 있어야합니다.
처음에는 모든 기능을 하나의 기능으로 통합하려고했습니다. 브라우저는 우리의 <form>
태그를 제거합니다. 왜냐하면 우리는 다른 양식 (게시 양식) 안에 양식을 놓으려고 시도하고 있기 때문입니다. 그래서 admin_footer에서 호출하여 폼 외부에 코드를로드합니다.
양식에 find_posts_div()
을 입력하면 양식의 결과를 원하는 곳으로 제출하고 원하는 모든 작업을 수행 할 수 있습니다. 여기서는 새 페이지 (test.php)를 만들고 결과를 제출하므로 필요한 것을 처리 할 수 있습니다.다음과 같이
지금까지 test.php 페이지입니다 :이 ... 당신에게 $ _POST의 모든 값을 보여 더 숨겨진 가치와 무엇을하지를 추가 부담 만됩니다
<?php
echo '<pre>';print_r($_POST);echo '</pre>';
die();
?>
' found_post_id '값은 팝업에서 선택한 값의 게시물 ID입니다. 그런 다음 upload.php의 103 - 141 행을 확인하여 실제 다시 첨부 할 코드를 찾을 수 있습니다. 후크 나 더 나은 것이 있을지 모르지만, 볼 시간이 없었습니다.
희망이 도움이됩니다.
문제 없음 ... 다행스럽게 생각합니다! 추신 솔루션에서 spd_submitbox_misc_actions 및 spd_post_submitbox_misc_form을 두 번 호출합니다. 다른 사람들이 혼란스럽지 않도록 중복 기능을 제거하도록 코드를 업데이트하십시오. –