我正在尝试为wp构建一个小插件,为自定义帖子类型页面添加一个按钮http://example.com/events
有一个指向另一个自定义帖子类型页面的链接,我可以从管理页面的下拉菜单中选择。
metabox显示正确,但更新页面时未保存所选选项。
这是我的代码:class eca_metabox {
public function __construct()
{
add_action( \'add_meta_boxes\', array( $this, \'eca_add_meta_box\' ) );
add_action( \'save_post\', array( $this, \'save\' ), 10, 2 );
}
public function eca_add_meta_box()
{
add_meta_box(
\'eca-meta\',
\'Scegli a quale corso deve linkare questo evento\',
array(
$this,
\'eca_meta_box_function\'
),
\'tribe_events\',
\'normal\',
\'high\'
);
}
public function eca_meta_box_function( $post )
{
wp_nonce_field( \'eca_nonce_check\', \'eca_nonce_check_value\' );
$mv = get_post_meta( $post->ID, \'_ec-addons-course\', true );
$post_type_object = get_post_type_object(\'course\');
$name = $post_type_object->name;
$label = $post_type_object->label;
$posts = get_posts(
array(
\'post_type\'=> \'course\',
\'post_status\'=> \'publish\',
\'suppress_filters\' => false,
\'posts_per_page\'=> -1,
)
); ?>
<select name="eca-addons-course" id="eca-addons-<?php echo $name; ?>">
<option value = "" >Tutti i <?php echo strtolower( $label ); ?></option>
<?php foreach ( $posts as $post ) { ?>
<option value="<?php echo $post->ID; ?>_<?php echo preg_replace(\'#[ -]+#\', \'-\' ,$post->post_title ); ?>" <?php selected( $mv, $post->ID ); ?>><?php echo $post->post_title; ?></option>
<?php } ?>
</select>
<?php
}
public function save( $post_id )
{
if( !isset($_POST[\'eca_nonce_check_value\'] ) )
return $post_id;
$nonce = $_POST[\'eca_nonce_check_value\'];
if( !wp_verify_nonce( \'eca_nonce_check_value\', \'eca_nonce_check\' ) )
return $post_id;
if (defined(\'DOING_AUTOSAVE\') && DOING_AUTOSAVE)
return $post_id;
$post_type = get_post_type_object( $post->post_type );
if (!current_user_can( $post_type->cap->edit_post, $post_id ))
return $post_id;
$new_meta_value = ( isset( $_POST[\'ec-addons-course\'] ) ? sanitize_text_field( $_POST[\'ec-addons-course\'] ) : \'\' );
$mk = \'ec-addons-course\';
update_post_meta( $post->ID, $mk, $new_meta_value );
}
}
$eca_course = new eca_metabox();
add_action( \'tribe_events_single_event_after_the_content\', \'ec_addons_single_course_button_link\' );
function ec_addons_single_course_button_link()
{
$output = "<a id =\'courseLink\' class=\'tribe-events-course-detail tribe-events-button\' href=\'#\' title=\'Vai al corso\'>Vai al dettaglio del corso </a>";
var_dump($eca_course);
echo \'
<script type="text/javascript">
jQuery(document).ready(function($){
var course = $("\' . $output . \'");
$(".tribe-events-cal-links").append(course);
});
</script>
\';
}
在前端,th按钮显示正确,但href不起作用:现在页面重定向自身,我希望链接到我在管理元数据库下拉菜单中选择的课程的url。谢谢你的帮助。祝你今天愉快。