从GET_POST_CUSTOM获取值

时间:2014-11-25 作者:Jamie

我为一个显示良好的类别添加了一个自定义元框。此元数据库的唯一目的是提供到帖子的链接。我可以看到该框工作正常,因为我的测试链接保存在该框中。现在我正在尝试获取前端的值,但遇到了一点麻烦。

这是元数据库:

function cd_meta_box_cb()
{
        global $post;
        $values = get_post_custom( $post->ID );
        $text = isset( $values[\'link\'] ) ? esc_attr( $values[\'link\'][0] ) : \'\';

        wp_nonce_field( \'tickets_link_nonce\', \'meta_box_nonce\' );

        ?><label for="link">Tickets Link</label>
      <input type="text" name="link" id="link" value="<?php echo $text; ?>" /><?php
}

add_action( \'save_post\', \'cd_meta_box_save\' );
function cd_meta_box_save( $post_id )
{
    // Bail if we\'re doing an auto save
    if( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE ) return;

    // if our nonce isn\'t there, or we can\'t verify it, bail
    if( !isset( $_POST[\'meta_box_nonce\'] ) || !wp_verify_nonce( $_POST[\'meta_box_nonce\'], \'tickets_link_nonce\' ) ) return;

    // if our current user can\'t edit this post, bail
    if( !current_user_can( \'edit_post\' ) ) return;

         $allowed = array(
        \'a\' => array( // on allow a tags
            \'href\' => array() // and those anchors can only have href attribute
        )
    );

        if( isset( $_POST[\'link\'] ) ) {
        update_post_meta( $post_id, \'link\', wp_kses( $_POST[\'link\'], $allowed ) );
}
这是我前端代码的当前版本。

 $tickets = array();
 $tickets = get_post_custom($post->ID); ?>

 <?php if( !empty($tickets[\'link\'])): ?>
      <a href="<?php echo $tickets[0]; ?>" class="tickets_btn">Tickets</a>
 <?php endif; ?>
我已经在第一篇文章中显示了链接。我有两个问题要解决。

类别中有12篇文章,尽管第二篇文章的metabox值为空,但仍显示一个空白链接

我在其他帖子上得到了未定义的索引。

这里有一个print_r 在阵列上

(
    [_thumbnail_id] => Array
        (
            [0] => 1865
            [1] => 1865
        )

    [_edit_last] => Array
        (
            [0] => 1
            [1] => 1
        )

    [_am_city] => Array
        (
            [0] => The Dome
            [1] => The Dome
        )

    [tooltip] => Array
        (
            [0] => Come down to the Dome
        )

    [panels_data] => Array
        (
            [0] => a:0:{}
        )

    [_edit_lock] => Array
        (
            [0] => 1416882347:1
        )

    [ninja_forms_form] => Array
        (
            [0] => 0
        )

    [link] => Array
        (
            [0] => http://testlink.com
        )

    [_am_showdates] => Array
        (
            [0] => <p>27</p>DEC
        )

    [_am_location] => Array
        (
            [0] => The Dome
        )

    [_am_state] => Array
        (
            [0] => Detroit, Mi
        )

)
我正试图得到[link] => http://testlink.com

1 个回复
最合适的回答,由SO网友:Nilambar Sharma 整理而成

尝试以下操作:

<a href="<?php echo $tickets[\'link\'][0]; ?>" class="tickets_btn">Tickets</a>
使用起来更好esc_url() 显示URL。例如:

<?php echo esc_url($tickets[\'link\'][0]); ?>

结束

相关推荐

“NEXT_POSTS_LINK”和“PERVICE_POSTS_LINK”不显示任何内容

我试图在我的单曲中添加“上一篇文章”和“下一篇文章”的链接。php文件没有成功,因为前一个\\u posts\\u link和下一个\\u posts\\u link没有返回任何内容。老实说,我不知道这些按钮放在了什么地方。谢谢<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <div class=\"post-content\"> <?php the_title(