【问题标题】:Custom Post Type Metabox Not Displaying自定义帖子类型元框不显示
【发布时间】:2012-01-05 11:32:08
【问题描述】:

从本教程开始:http://wp.tutsplus.com/tutorials/create-a-responsive-slider-plugin-with-flexslider/

我正在尝试添加一些元框,以便为每张幻灯片添加更多内容。从这里的“链接”元框开始是我的 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"]); 
        } 
    }
?>

也许我遗漏了一些明显的东西,但是当我尝试添加新的 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;
}  ?>

我刚刚注意到教程的 cmets 上发布了另一个解决方案,但这似乎对我不起作用:

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

我认为 cmets 去掉了显示锚标记的正确代码:

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

我尝试在“值”输入字段中添加带有 url 的自定义字段“link_slide_to”,但幻灯片在锚点悬停时仍不显示任何 url。

【问题讨论】:

    标签: wordpress custom-post-type meta-boxes


    【解决方案1】:

    几个月前我帮助了一个有类似问题的人,hopefully this will help you out。如果您有任何问题,请告诉我。

    【讨论】:

    • 感谢 rmlumley,我已经根据您的代码编辑了代码,但仍然无法显示链接框:
    • 我不知道为什么这很重要,但只是为了消除它的可能性,您是否尝试过不带标签写出来?只是输入,可能还有一些文本。
    • 恐怕这并没有什么不同。会不会有什么关系:'supports' =&gt; array('title', 'editor', 'thumbnail', 'custom-fields')
    • 另一种似乎对我也不起作用的解决方案见上文。
    • 你知道,我想我找到了。将 add_meta_box 的“efs”、“side”、“low”)部分更改为“CPT_TYPE”、“side”、“low”)
    猜你喜欢
    • 2017-03-12
    • 2013-06-11
    • 2022-07-20
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多