get_the_ID () está trabalhando no meu desenvolvimento local, mas não no servidor de teste

4

Ótimo para ver um StackExchange for WP! Ok, então eu estou trabalhando em puxar imagens e datas de tipos de post personalizado piklist e eu tenho isso trabalhando no meu local, mas quando eu movê-lo para WPEngine eu recebo uma página em branco até que eu tire o código. O código de data não lança uma página em branco, mas não puxa as datas inseridas. Alguém pode me dizer o que sobre esse código pode estar causando isso? Obrigado antecipadamente!

CÓDIGO

single.php

<?php while ( have_posts() ) : the_post(); ?>

  <?php

    $image_ids = get_post_meta(get_the_ID(), 'my_media', false);

    foreach ($image_ids as $image)
    {

      echo '<img src=" ' . wp_get_attachment_image_src($image, 'large')[0]  . ' "/>';

    }
  ?>

  <?php echo get_post_meta(get_the_ID(), 'my_date', true); ?>

  <?php get_template_part( 'content', themeblvd_get_part( 'single' ) ); ?>

  <?php themeblvd_single_footer(); ?>

  <?php if ( themeblvd_supports( 'comments', 'posts' ) ) : ?>
    <?php comments_template( '', true ); ?>
  <?php endif; ?>

<?php endwhile; ?>
    
por tjoenz 19.08.2014 / 02:47

1 resposta

4

O problema é esta parte:

wp_get_attachment_image_src($image, 'large')[0]

Nas versões antigas do PHP, como 5.3 e abaixo, você não pode referenciar uma entrada ( [0] ) da matriz retornada de uma função. O problema é que o WP Engine ainda está no PHP 5.3, que chegou ao fim da vida recentemente e não recebe mais atualizações de segurança. Para a história, veja PHP 5.3 - Obrigado por todos os peixes .

Você tem duas opções:

  1. Encontre todas as ocorrências da sintaxe moderna e reescreva-as para torná-la compatível com o 5.3. Neste caso:

    $img_data = wp_get_attachment_image_src($image, 'large');
    $src = $img_data[0];
    
  2. Mude para uma versão mais recente do PHP, de preferência 5.5. Se o seu hoster atual não puder fazer isso, encontre um melhor.

por fuxia 19.08.2014 / 05:30