PHP-警告:自定义WordPress主题中的字符串偏移量非法
我正在尝试修复一个我没有编写的自定义WordPress主题。我有限的PHP知识无法解决这个问题。我的彻底搜索发现了类似的问题,大多数答案都说数组传递的是字符串或错误的类型。我只是不知道如何修复它,或者我只是应该抑制警告 警告:第39行的字符串偏移量“the_link”非法PHP-警告:自定义WordPress主题中的字符串偏移量非法,php,wordpress,warnings,Php,Wordpress,Warnings,我正在尝试修复一个我没有编写的自定义WordPress主题。我有限的PHP知识无法解决这个问题。我的彻底搜索发现了类似的问题,大多数答案都说数组传递的是字符串或错误的类型。我只是不知道如何修复它,或者我只是应该抑制警告 警告:第39行的字符串偏移量“the_link”非法 警告:第58行的字符串偏移量“subheader”非法 这是有问题的代码。任何帮助都将不胜感激 <?php get_header(); ?> <?php wp_nav_menu( array(
警告:第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↑</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)
并向我们展示里面是什么?所以我们真的应该数数行吗?不,这就是为什么我指出了哪些行导致了警告谢谢!这就解决了问题。