按键链接到wordpress中的页面

时间:2017-03-29 11:29:21

标签: php wordpress

目前我正在开设一个人们可以从外部网站上学习课程的网站。在课程页面上有一个按钮,可以将您带到该网站。我创建了一个meta_box,它应该包含一个URL并使用该URL作为按钮,它看起来像这样: link to form picture

但是现在它不接受我在此表单中提交的URL。我做错了什么?这是我的代码:

这是在functions.php中:

add_action('add_meta_boxes', 'mp_add_custom_metabox');
function mp_meta_callback( $post ) {
    echo "Add the link for the course button here:<br/>";
    echo "<form method='get'>";
    echo "<input type='text' name='buttonurl' placeholder='add a URL here'>";
    echo "<input type='submit' value='Add'>";
    echo "</form>";
}  

这是课程单页:

<a href="<?php $_GET['buttonurl'];?>">
    <p>
        <div class="btn btn-primary take-course">
            Go to the course!
        </div>
    </p>
</a>

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

试试这样:

<?php
add_action( 'add_meta_boxes', 'cd_meta_box_add' );
function cd_meta_box_add()
{
    add_meta_box( 'my-meta-box-id', 'My First Meta Box', 'cd_meta_box_cb', 'post', 'normal', 'high' );
}

function cd_meta_box_cb()
{
    global $post;
    $values = get_post_custom( $post->ID );
    $button = isset( $values['buttonurl'] ) ? $values['buttonurl'] : '';?>
    <p>
        <label for="my_meta_box_text">Add the link for the course button here:</label>
        <input type='text' name='buttonurl' placeholder='add a URL here' value='<?php echo $button[0];?>'>
    </p>  <?php
}
add_action( 'save_post', 'cd_meta_box_save' );
function cd_meta_box_save( $post_id )
{
    // Make sure your data is set before trying to save it
    if( isset( $_POST['buttonurl'] ) )
        update_post_meta( $post_id, 'buttonurl', esc_url( $_POST['buttonurl']) );
}

然后,您可以使用前端中的值,如:

$button=get_post_meta( $post_id, 'buttonurl', true );


 <a href="<?php echo $button;?>">
    <p>
        <div class="btn btn-primary take-course">
            Go to the course!
        </div>
    </p>
</a>

参考:https://code.tutsplus.com/tutorials/how-to-create-custom-wordpress-writemeta-boxes--wp-20336