2017-03-29 93 views
0

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

但是现在它不包含我在此表单中提交的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

尝试这样的:

<?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

+0

谢谢你的快速反应!我忘了提及,我正在使用一个使用名为“Namaste LMS”的插件的模板。所以他们做了一个习惯(我认为像帖子,但我真的不知道)和其所谓的“课程”。你也许知道我可以如何增强你的代码,使它适用于这些课程?这里有一张图片:http://prntscr.com/epwr7t(如果有帮助) – PolaRichard

+0

如果你想创建你自己的自定义元字段,那么应该工作。 – Ninja

+0

嘿Rafin,我在我的网站上试过所有这些代码,但现在它不起作用。锚标记没有得到任何URL,所以它似乎。你也许知道为什么按钮不起作用? – PolaRichard