Пользовательский тип сообщения Metabox не отображается - PullRequest
1 голос
/ 05 января 2012

Исходя из этого урока: http://wp.tutsplus.com/tutorials/create-a-responsive-slider-plugin-with-flexslider/

Я пытаюсь добавить несколько мета-блоков для добавления дополнительного содержимого к каждому слайду.Начиная с метабокса 'link', мой код для slider-img-type.php:

<?php
define('CPT_NAME', "Slider Images");
define('CPT_SINGLE', "Slider Image");
define('CPT_TYPE', "slider-image");
define('CPT_THUMB_SIZE', 500);

add_theme_support('post-thumbnails', array('slider-image'));  

function efs_register() {  
    $args = array(  
        'label' => __(CPT_NAME),  
        'singular_label' => __(CPT_SINGLE),  
        'public' => true,  
        'show_ui' => true,  
        'capability_type' => 'post',  
        'hierarchical' => false,  
        'rewrite' => true,  
        'supports' => array('title', 'editor', 'thumbnail')  
       );  

    register_post_type(CPT_TYPE , $args );  
    set_post_thumbnail_size(CPT_THUMB_SIZE);
}  


add_action('init', 'efs_register');

add_action("admin_init", "efs_meta_box");   

function efs_meta_box(){
    add_meta_box("projInfo-meta", "EFS Options", "efs_meta_options", "efs", "side", "low");
}  

function efs_meta_options(){
        global $post;
        if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return $post_id;
        $custom = get_post_custom($post->ID);
        $link = $custom["projLink"][0];
?>
    <label>Link:</label><input name="projLink" value="<?php echo $link; ?>" />
<?php
        }

    add_action('save_post', 'save_efs_link'); 

    function save_efs_link(){  
        global $post;  

        if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ){ 
            return $post_id;
        }else{
            update_post_meta($post->ID, "projLink", $_POST["projLink"]); 
        } 
    }
?>

Возможно, я упускаю что-то очевидное, но не могу отобразить поле ввода Link, когда япопробуйте добавить новый тип сообщения Slider Image.

Любая помощь будет наиболее ценной.

Спасибо, Джеймс

Исправленный код, основанный на коде rmlumley:

function efs_meta_options(){
        global $post;
        $custom = get_post_custom($post->ID);
        $link = $custom["projLink"][0];
?>
    <label>Link:</label><input name="projLink" value="<?php echo $link; ?>" />  
<?php  
    }  

add_action('save_post', 'save_efs_link'); 

function save_efes_link($post_ID = 0){  
    $post_ID = (int) $post_ID;
        $post_type = get_post_type( $post_ID );
        $post_status = get_post_status( $post_ID );

        if ($post_type) {
        update_post_meta($post->ID, "projLink", $_POST["projLink"]); 
    }
return $post_ID;
}  ?>

Я только что заметил другое решение, опубликованное в комментариях к учебнику, но опять-таки, похоже, это не работает для меня:

http://wp.tutsplus.com/tutorials/create-a-responsive-slider-plugin-with-flexslider/#comment-14080

Я думаю, что комментариивычеркнул правильный код для отображения тега привязки:

$slider.='<li><a href='.$slide_link.'>'.$img.'</a></li>';

Я попытался добавить настраиваемое поле 'link_slide_to' с URL-адресом в поле ввода 'value', но слайд по-прежнему не отображает URL при наведении курсора.

1 Ответ

0 голосов
/ 05 января 2012

Я помог кому-то с подобной проблемой несколько месяцев назад, , надеюсь, это поможет вам .Дайте мне знать, если у вас есть какие-либо вопросы.

...