PHP in een Wordpress HTML pagina omgezet in commentaar

rschuite

Nieuwe gebruiker
Lid geworden
9 dec 2023
Berichten
2
In mij website wil ik PHP gebruiken. Als ik code invoer in de Tekst-tab van Wordpress wordt het PHP gedeelte omgezet in commentaar, nadat ik de pagina in de "Visueel" tab heb bekeken. Wat gaat er fout?

De ingevoerde code:
Code:
<html>
<head>
<title>PHP-voorbeeld</title>
</head>
<body>
<h1>PHP-voorbeeld.</h1>
<?PHP echo "Hello World"; ?>
</body>
</html>

Na "Visueel" tab terug op de "Tekst" tab:
Code:
&nbsp;
<h1>PHP-voorbeeld.</h1>
<!--?PHP echo "Hello World"; ?-->
 
probeer dit eens
<?php echo "<!--Hello World JA, hallo zeg ook een gelukkig nieuwjaar-->"; ?>
 
@kenikavanbis Dat gaat ook niet werken, want dat wordt netjes geëscaped, zoals het hoort.
Voor @rschuite: De vraag is: Zou je dit wel willen? Je hoeft maar net iemand te hebben die kwaadwillende intenties heeft. En Wordpress staat al bekend om diverse lekken, al zitten die in theme's en plug-in's en wordt er massaal door botjes naar gezocht.

Ik ken haast geen enkel pakket die PHP in zijn content toestaat, en zelfs in templates hoort het niet.

Mijn dringende advies is: Schrijf een plug-in, hang er een shortkey aan vast en klaar.
 
Inderdaad dit werkt niet :(
Via een ander kanaal kreeg ik een advies om WPCode te gebruiken. Maar ook daar heb ik problemen:
  • .De echo of de gebruiker Geel of Rood heeft geselecteerd verschijnt niet
  • Ik zou ik bijvoorbeeld met de radiobuttons 2 verschillende kleuren willen toekennen aan bepaalde cellen in een Wordpress pagina. Hoe kan ik de variabele $optie_wp gebruiken om de cellen een kleur te geven?
Alvast bedankt voor het antwoord

PHP:
// Twee waarden definiëren
echo "ja bent nu in snippet 351";
$waarde1 = 'Geel';
$waarde2 = 'Rood';

// HTML-formulier maken
Code:
echo <<<HTML
<form action="index.php" method="post">
  <input type="radio" name="optie" value="geel" /> $waarde1
  <input type="radio" name="optie" value="rood" /> $waarde2
  <input type="submit" value="Verzenden" />
</form> <br>
HTML;

PHP:
echo "nu uit HTML";
// Variabele declareren
$optie = '';

// Waarde van de radioknop opslaan
if ( isset( $_POST['optie'] ) ) {
  $optie = $_POST['optie'];
}

// Variabele in WordPress vullen
$optie_wp = $optie;

echo 'Het lijkt erop dat De gebruiker heeft "' . $optie_wp . '" geselecteerd.';
// Variabele gebruiken in WordPress pagina
if ( $optie == 'waarde1' ) {
  echo 'De gebruiker heeft "Geel" geselecteerd.';
} else {
  echo 'De gebruiker heeft "Rood" geselecteerd.';
}
 
En los van dat zit je in een andere scope, standaard WP-functies zullen ook niet werken als je PHP kon gebruiken in je content.

Maak gewoon een aparte plugin. Gaat dat lukken?
 
Ik heb een stukje code voor je gebakken met wat hulp van ChatGPT:
Plaats dit in functions.php:

PHP:
// Functie om de shortcode te registreren en uit te voeren
function mijn_shortcode_functie() {
    // Twee waarden definiëren
    $waarde1 = 'Geel';
    $waarde2 = 'Rood';
  
    // HTML-formulier maken
    $output = '<form action="' . esc_url( admin_url('admin-post.php') ) . '" method="post">
        <input type="hidden" name="action" value="handle_optie_form">
        <input type="radio" name="optie" value="geel" /> ' . esc_html($waarde1) . '
        <input type="radio" name="optie" value="rood" /> ' . esc_html($waarde2) . '
        <input type="submit" value="Verzenden" />
    </form>';

    return $output;
}
add_shortcode('mijn_shortcode', 'mijn_shortcode_functie');

// Functie om het formulier te verwerken
function handle_optie_form() {
    if ( isset($_POST['optie']) ) {
        $optie = sanitize_text_field($_POST['optie']);
        echo 'Het lijkt erop dat de gebruiker "' . $optie . '" heeft geselecteerd.';

        if ( $optie == 'geel' ) {
            echo ' De gebruiker heeft "Geel" geselecteerd.';
        } else {
            echo ' De gebruiker heeft "Rood" geselecteerd.';
        }
    }
    die();
}
add_action('admin_post_handle_optie_form', 'handle_optie_form');
add_action('admin_post_nopriv_handle_optie_form', 'handle_optie_form');

Gebruik de shortcode [mijn_shortcode] om het formulier op pagina's of berichten weer te geven, waarbij het formulier zal verschijnen met de opties "Geel" en "Rood". Wanneer de gebruiker een optie selecteert en op "Verzenden" klikt, zal de geselecteerde waarde worden weergegeven. Het script bestaat uit twee aparte functies. Een voor het tonen van het formulier met de shortcode, en de andere is de afhandeling.

Verder garantie tot aan de voordeur :)
 
Helaas kan je de PHP-code niet rechtstreeks in de pagina-editor plakken. Je moet dus de plug-in gebruiken of je kant dit in jouw themabestanden doen. Ik raad je aan een child-thema te maken, zodat updates van uw basisthema uw code niet verwijderen.

Zo kun je de logica van een bepaald deel van je website aanpassen. Kloon bijvoorbeeld je footer.php in je child-thema en je zou alle wijzigingen in PHP moeten kunnen zien. Bijvoorbeeld:

PHP:
<?php
   
echo "Hello World";

do_action( 'et_after_main_content' );
if ( 'on' === et_get_option( 'divi_back_to_top', 'false' ) ) : ?>
    <span class="et_pb_scroll_top et-pb-icon"></span>
<?php endif;
if ( ! is_page_template( 'page-template-blank.php' ) ) : ?>
    <footer id="main-footer">
        <?php get_sidebar( 'footer' ); ?>
        <div class="container-fluid above-footer">
            <div class="row">
                <div class="col-12 p-0">
                    <?php dynamic_sidebar( 'above-footer' ); ?>
                </div>
            </div>
        </div>
        <?php
        if ( has_nav_menu( 'footer-menu' ) ) : ?>
            <div id="et-footer-nav">
                <div class="container">
                    <?php
                    wp_nav_menu( array(
                        'theme_location' => 'footer-menu',
                        'depth'          => '1',
                        'menu_class'     => 'bottom-nav',
                        'container'      => '',
                        'fallback_cb'    => '',
                    ) );
                    ?>
                </div>
            </div> <!-- #et-footer-nav -->

        <?php endif; ?>

        <div id="footer-bottom">
            <div class="container clearfix">
                <?php
                if ( false !== et_get_option( 'show_footer_social_icons', true ) ) {
                    get_template_part( 'includes/social_icons', 'footer' );
                }

                // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped
                echo et_core_fix_unclosed_html_tags( et_core_esc_previously( et_get_footer_credits() ) );
                // phpcs:enable
                ?>
            </div>    <!-- .container -->
        </div>
    </footer> <!-- #main-footer -->
    </div> <!-- #et-main-area -->
<?php endif; // ! is_page_template( 'page-template-blank.php' ) ?>
</div> <!-- #page-container -->
<?php wp_footer(); ?>
</body>
</html>
 
Laatst bewerkt door een moderator:
Helaas kan je de PHP-code niet rechtstreeks in de pagina-editor plakken. Je moet dus de plug-in gebruiken of je kant dit in jouw themabestanden doen. Ik raad je aan een child-thema te maken, zodat updates van uw basisthema uw code niet verwijderen.
True, maar die spam is verder niet nodig hoor onder je bericht. Of plaats het in je onderschrift.
 
Bedankt voor de verbetertips. Ik wil het graag aanpassen, maar er is geen optie ;)
 
is al aangepast , zie ik :)
 
Terug
Bovenaan Onderaan