Как запустить PHP код внутри расширенного текстового виджета WordPress - PullRequest
0 голосов
/ 16 февраля 2020

У меня есть этот код, который должен возвращать список сообщений в WordPress. Я добавил этот код в расширенный виджет текста, который поддерживает PHP, но не могу заставить его работать.

<?php 
// the query
$the_query = new WP_Query( array(
'post_type' => 'posts',
'posts_per_page' => 5,
)); 
?>
<?php if ( $the_query->have_posts() ) : ?>
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>

<div class="col-md-12">
    <div class="pgsgrid">  
   <div class="col-md-3 col-xs-12 col-lg-3 col-sm-6 animated wow fadeInUp animated" data-wow- 
delay=".5s" data-wow-offset="5" style="visibility: visible; animation-delay: 0.5s; animation-name: 
fadeInUp;">
      <div class="hupjik">
      <img src="<?php echo get_the_post_thumbnail_url(); ?>" alt="pgs" class="img-responsive">
        <div class="medianews">
          <p><?php echo get_the_date(); ?></p>
                             <p><?php the_excerpt(); ?></p>

           <p> <a href="<?php echo the_permalink(); ?>" style="color:#ea6224">Read More &gt;</a></p>
        </div>

        </div>
    </div>

    </div>

1 Ответ

0 голосов
/ 16 февраля 2020

Текстовый виджет не поддерживает код PHP, но вы можете запускать свои PHP коды, используя шорткод.

Используйте этот код для работы. php для создания шорткода:

function custom_post_widget(){
    // the query
    $the_query = new WP_Query( array(
        'post_type' => 'post',
        'posts_per_page' => 5,
    )); 
    ob_start();
    ?>
    <?php if ( $the_query->have_posts() ) : ?>
    <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>

    <div class="col-md-12">
        <div class="pgsgrid">
            <div class="col-md-3 col-xs-12 col-lg-3 col-sm-6 animated wow fadeInUp animated" data-wow- delay=".5s" data-wow-offset="5" style="visibility: visible; animation-delay: 0.5s; animation-name: fadeInUp;">
                <div class="hupjik">
                    <img src="<?php echo get_the_post_thumbnail_url(); ?>" alt="pgs" class="img-responsive">
                    <div class="medianews">
                        <p>
                            <?php echo get_the_date(); ?>
                        </p>
                        <p>
                            <?php the_excerpt(); ?>
                        </p>

                        <p> <a href="<?php echo the_permalink(); ?>" style="color:#ea6224">Read More &gt;</a></p>
                    </div>

                </div>
            </div>

        </div>
    </div>
    <?php
    endwhile;
    endif;

    return ob_get_clean();
}
add_shortcode( 'custom_post_widget', 'custom_post_widget' );

Затем используйте этот код для текстового виджета: [custom_post_widget] enter image description here

Я тестировал и работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...