web-dev-qa-db-fra.com

add_shortcode ne fonctionne pas

lorsque j'utilise ce document sur le serveur Web, il fonctionne correctement, mais lorsque ce fichier est en cours d'utilisation, le plug-in est utilisé dans WordPress, puis je dois placer le shortcode du fichier sur la page sur laquelle je souhaite appliquer les effets de ce plug-in. .. mais quand je mets le shortcode alors il ne montre que la chaîne de ce shortcode, pas l'effet. Veuillez trouver le fichier codé ci-dessous et fournir une solution.

<?php
function sac_form()
{
echo "<html>";
echo "<head></head>";
echo "<body>";
echo "<form>";
echo "<table>";
echo '<tr><td>Name</td><td><input type="text" name="Name"></td></tr>';
echo '<tr><td>Email</td><td><input type="text" name="Email"></td></tr>';
echo '<tr><td>Subject</td><td><input type="text" name="subject"></td></tr>';
echo '<tr><td>Message</td><td><textarea rows="4" cols="50"></textarea></td></tr>';
echo '<tr><td><input type="submit" name="submit" value="Submit"></td></tr>';
echo "</table>
</form>
</body>
</html>";
}
add_shortcode( 'short_code', 'sac_form' );
?>
2
sachin kumar

Les codes courts ne s'exécutent que s'ils sont utilisés dans l'environnement WordPress. Il semble que vous utilisiez le shortcode dans une page pour laquelle le moteur de WordPress n'a pas été chargé.

En outre, stockez toujours vos données dans une variable, puis renvoyez la valeur au lieu d'utiliser echo:

function sac_form() {
    $data = '
    <html>
        <head></head>
        <body>
            <form>
                <table>
                    <tr><td>Name</td><td><input type="text" name="Name"></td></tr>
                    <tr><td>Email</td><td><input type="text" name="Email"></td></tr>
                    <tr><td>Subject</td><td><input type="text" name="subject"></td></tr>
                    <tr><td>Message</td><td><textarea rows="4" cols="50"></textarea></td></tr>
                    <tr><td><input type="submit" name="submit" value="Submit"></td></tr>
                </table>
            </form>
        </body>
    </html>';
    return $data;
}
add_shortcode( 'short_code', 'sac_form' );
2
Jack Johansson