Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-警告:自定义WordPress主题中的字符串偏移量非法_Php_Wordpress_Warnings - Fatal编程技术网

PHP-警告:自定义WordPress主题中的字符串偏移量非法

PHP-警告:自定义WordPress主题中的字符串偏移量非法,php,wordpress,warnings,Php,Wordpress,Warnings,我正在尝试修复一个我没有编写的自定义WordPress主题。我有限的PHP知识无法解决这个问题。我的彻底搜索发现了类似的问题,大多数答案都说数组传递的是字符串或错误的类型。我只是不知道如何修复它,或者我只是应该抑制警告 警告:第39行的字符串偏移量“the_link”非法 警告:第58行的字符串偏移量“subheader”非法 这是有问题的代码。任何帮助都将不胜感激 <?php get_header(); ?> <?php wp_nav_menu( array(

我正在尝试修复一个我没有编写的自定义WordPress主题。我有限的PHP知识无法解决这个问题。我的彻底搜索发现了类似的问题,大多数答案都说数组传递的是字符串或错误的类型。我只是不知道如何修复它,或者我只是应该抑制警告

警告:第39行的字符串偏移量“the_link”非法
警告:第58行的字符串偏移量“subheader”非法

这是有问题的代码。任何帮助都将不胜感激

    <?php get_header(); ?>
    <?php wp_nav_menu( array( 'container_class' => 'header-bar','theme_location' => 'reviews' ) ); ?>

<div class="content wiemer-pages">
  <?php the_post(); ?>
  <div id="page-header-wrap">
<div id="page-header" class="no-shadow wreath">
  <?php the_post_thumbnail(); ?>
  <h1 class="page-title">
    <?php the_title(); ?>
  </h1>
  <div id="page-header-content">
    <?php $pageheader_metabox->the_meta(); 
$pageheader_metabox->the_value('title');?>
  </div>
  <div class="clear"></div>
</div>
  </div>
  <!-- [END] page-header-wrap + page header -->
  <div class="page-content">
<?php the_content(); ?>
<?php edit_post_link(); ?>
  </div>
  <?php   
$args=array(
   'post_type'=>'reviews',  
'posts_per_page'=>60
);
$catreview = new WP_Query($args);
global $post;
   ?>
  <?php if($catreview->have_posts()): ?>
  <h2 class="review-category" id="accolades">Recent Accolades </h2>
  <?php while ($catreview->have_posts()) : $catreview->the_post();?>
  <?php // load the meta     
        $mainurl='#';
    $meta= get_post_meta($post->ID, '_urls', true);
             $mainurl = $meta['the_link']; <!-- line 39 -->
     ?>

  <div class="review-item">
<div class="review-thumb-container">
  <?php // post thumbnail 
            if (has_post_thumbnail()){  ?>
  <a class="review-thumbnail" href="<?php echo $mainurl ?>">
  <?php the_post_thumbnail(array(144,180),array("title" => get_the_title($post->ID) . " - Thumbnail")); ?>
  </a>
  <?php } ?>
</div>
<div class="review-body">
  <h6>
    <?php the_time('F Y') ?>
    <?php //echo get_the_term_list( $post->ID, 'accolades', '| '); ?>
  </h6>
  <h3><a href="<?php echo $mainurl; ?>">
    <?php the_title() ?>
    </a></h3>
  <?php if ($sh = $meta['subheader']){ echo "<h4> $sh </h4>"; } ?>  <!-- line 58 -->
  <div class="review-content">
    <?php the_content(); ?>
    <?php edit_post_link( 'Edit', '<div class="edit-link">', '</div>' ); ?>
  </div>
  <?php if (isset($meta['link_title'])): ?>
  <ul class="url-list">
    <li> <a href="<?php echo $meta['the_link']; ?>" class="note-cat">
<?php echo $meta['link_title']; ?></a> </li>
  </ul>
  <?php endif; //urls ?>
</div>
</div>
<?php endwhile; ?>
<p><a class="to-top" title="Top of the page" href="#masthead">Top&uarr;</a></p>
<?php endif; //End if for Accolades ?>
</div>
<?php get_footer(); ?>

最近的荣誉

我认为您的问题在于
$meta
不是数组,因为
get\u post\u meta
当前返回单个值,因为第三个参数设置为true

Wordpress文档中第三个参数的说明:

$single
(bool)(可选)是否返回单个值。
默认值:false

您当前正在使用:

$meta = get_post_meta($post->ID, '_urls', true);
第三个参数设置为true。因此,它将返回单个值(而不是数组)。因此,您可以将其设置为false(或者删除第三个参数,因为默认值为false)以返回数组

您可以在此处找到有关
get\u post\u meta
函数的更多信息:

有关“警告:非法字符串偏移”错误的信息:

var\u dump($meta)
并向我们展示里面是什么?所以我们真的应该数数行吗?不,这就是为什么我指出了哪些行导致了警告谢谢!这就解决了问题。