web-dev-qa-db-fra.com

Ajouter un champ au tableau de bord pour mettre à jour l'URL incorporée sur la page d'accueil?

J'ai essayé de chercher, mais toutes les réponses "ajouter un widget de tableau de bord" semblent trop compliquées, mais trop simples (par exemple, le widget affiche simplement un message; ne transmet pas de variable).

J'ai ajouté une ligne de code sur le modèle principal (page d'accueil) pour incorporer une vidéo et je souhaite disposer d'un seul champ de saisie de texte sur le tableau de bord pour qu'un autre administrateur puisse entrer une URL YouTube et faire en sorte que cette URL remplace l'URL actuellement incorporée. Juste quelque chose de simple où la variable est mise à jour. S'il vous plaît quelqu'un peut me donner des instructions étape par étape sur exactement comment faire cela?

Les lignes de code que j'ai introduites dans le modèle sont les suivantes:

<?php
        $your_YouTube_url = 'https://www.youtube.com/watch?v=w6DW4i-mfbA';
        echo wp_oembed_get( $your_YouTube_url );
?>

Tout ce que je veux faire est de mettre UN champ de saisie de texte sur le tableau de bord pour mettre à jour la variable $ your_YouTube_url. Mon point fort est HTML/CSS/js; Je connais un peu PHP et je connais bien WP mais pas un expert. Mon collègue est totalement non-technicien, donc je pense que nous serions tous les deux plus à l'aise dans cette voie plutôt que de lui demander de mettre à jour la ligne de code tous les jours. (La vidéo en question n'est pas diffusée en streaming sur YT ou je me contenterais de suivre cette route avec l'URL du programme en streaming.) Merci!

1
code-sushi

Ajoutez le code ci-dessous dans le fichier functions.php pour créer un champ de texte dans la page des options de configuration générale.

add_action('admin_init', 'embed_url_initialize');

function embed_url_initialize() {

    // First, we register a section. This is necessary since all future options must belong to one. 

    add_settings_section(

        'general_settings_section',         // ID used to identify this section and with which to register options

        'Embed Url Option',                  // Title to be displayed on the administration page

        'embed_url_general_options_callback', // Callback used to render the description of the section

        'general'                           // Page on which to add this section of options

    ); 

    // Next, we will introduce the fields for toggling the visibility of content elements.

    add_settings_field( 

        'video_url',                      // ID used to identify the field throughout the theme

        'Enter Video Url',                  // The label to the left of the option interface element

        'video_url_callback',   // The name of the function responsible for rendering the option interface

        'general',                          // The page on which this option will be displayed

        'general_settings_section'         // The name of the section to which this field belongs



    );

    // Finally, we register the fields with WordPress

    register_setting(

        'general',

        'video_url'

    );
} 

/* ------------------------------------------------------------------------ *

 * Section Callbacks

 * ------------------------------------------------------------------------ */
/**

 * This function provides a simple description for the General Options page. 

 *

 * It is called from the 'embed_url_initialize' function by being passed as a parameter

 * in the add_settings_section function.

 */

function embed_url_general_options_callback() {

    echo '<p>Please enter the embed url.</p>';

} // end embed_url_general_options_callback



/* ------------------------------------------------------------------------ *

 * Field Callbacks

 * ------------------------------------------------------------------------ */

/**

 * This function renders the interface element for input embed url.

 */

function video_url_callback($args) {

    $html = '<input type="textbox" class="regular-text" id="video_url" name="video_url" value="' . get_option("video_url") .'" />';    

    echo $html;
} // end video_url_callback_callback

puis appelez le code ci-dessous dans le fichier de modèle où vous souhaitez obtenir la vidéo intégrée

<?php if(get_option('video_url')) { 
    $embed = wp_oembed_get( get_option('video_url') );
    if( $embed ) {
        echo $embed;
    } else {
        // The embed HTML couldn't be fetched
    }
 } // end if ?>
1
Lovin Nagi