目前我正在开设一个人们可以从外部网站上学习课程的网站。在课程页面上有一个按钮,可以将您带到该网站。我创建了一个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>
提前感谢您的帮助!
答案 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