2017-03-29 7 views
0

Zur Zeit arbeite ich an einer Website, wo Menschen Kurse von externen Websites nehmen können. Auf der Kursseite gibt es einen Button, mit dem Sie zu dieser Website gelangen. Ich machte eine meta_box, die eine URL enthalten sollte und diese URL für die Schaltfläche verwenden soll. Sie sieht folgendermaßen aus: link to form pictureButton Links zu Seite in WordPress

Aber im Moment nimmt es diese URL, die ich in diesem Formular einreiche, nicht an. Was mache ich falsch? Hier ist mein Code:

Dies ist in 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>"; 
} 

Dies ist im Laufe einzelne Seite:

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

Sie für die Hilfe im Voraus danken!

Antwort

0

wie diese versuchen:

<?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'])); 
} 

Sie können dann den Wert im Frontend verwenden wie:

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

eine Referenz nehmen zu: https://code.tutsplus.com/tutorials/how-to-create-custom-wordpress-writemeta-boxes--wp-20336

+0

Dank für die schnelle Antwort Dank! Ich habe vergessen zu erwähnen, dass ich eine Vorlage verwende, die ein Plugin namens "Namaste LMS" verwendet. Also machten sie eine Gewohnheit (ich denke so etwas wie Beiträge, aber ich weiß nicht wirklich) und es heißt "Kurs". Wissen Sie vielleicht, wie ich Ihren Code verbessern kann, damit er mit diesen Kursen funktioniert? Hier ist ein Bild: http://printscr.com/epwr7t (wenn das hilft) – PolaRichard

+0

Wenn Sie eigene benutzerdefinierte Meta-Felder erstellen möchten, dann sollte das funktionieren. – Ninja

+0

Hey Rafin, ich habe den ganzen Code auf meiner Website ausprobiert, aber im Moment funktioniert es nicht. Das Anchor-Tag erhält keine URL, wie es scheint. Weißt du vielleicht, warum der Knopf nicht funktioniert? – PolaRichard