$post
从不启用init
当我测试这个时--
function topSub( $Trunckvalue = null ) {
global $post;
var_dump($post);
}
add_action( \'init\', \'topSub\' );
我能找到的最早的钩子(通过实验,而不是规范的陈述)是
wp
.
另外,$post
在存档页和“单个”页上设置。在这些归档页面上,它被设置为循环中的第一篇文章。
@MayeenulIslam的自我回答中有一条评论。。。
//check if post is object otherwise you\'re not in singular post
那句话是假的。
出于这两个原因,我不希望代码或自我回答像预期的那样工作。根据我的理解,解决方案应该是:
// Top Sub Heading (top_sub) FROM CUSTOM FIELD
function topSub( $Trunckvalue = null ) {
if (!is_singular()) return;
global $post;
$TopSub = get_post_meta( $post->ID, \'top_sub\', $single=true );
$shortTopSub = trunck_string( $TopSub, $Trunckvalue, true );
if ( !$TopSub == NULL ) { ?>
<h3 class="top-sub"><?php echo $shortTopSub; ?></h3> <!-- .top-sub -->
<?php }
return $shortTopSub;
}
add_action( \'wp\', \'topSub\' ); // or a later hook depending on circumstances
我也对这句话感到困惑:
if ( !$TopSub == NULL ) { ?>
您正在检查
$TopSub
不是
NULL
但实际上正在使用
$shortTopSub
在条件中。在我看来,这应该重写:
if ( !empty($shortTopSub) ) { ?>
<h3 class="top-sub"><?php echo $shortTopSub; ?></h3> <!-- .top-sub -->
<?php }