我正在尝试修改一个插件,使其仅在两周以上的帖子上执行。我在下面添加了isOldEnough函数来尝试这样做。我错过了什么?
function remove_metadata()
{
$isOldEnough = function ()
{
$postDate = strtotime( $post->post_date );
$todaysDate = time();
if($postDate - $todaysDate > 129600) {
return true;
} else {
return false;
}
};
if ($isOldEnough)
{
/* Register style css. */
wp_enqueue_style( \'remove-style-meta\', plugins_url( \'css/entrymetastyle.css\', __FILE__ ), false, \'1.0\', \'all\' );
}
}
add_action(\'wp_head\', \'remove_metadata\');
该插件只需使用几行CSS删除元数据。
现在,无论post\\u日期如何,它都会在所有帖子上执行代码。
SO网友:DrewAPicture
看起来有几件事出了问题。
首先,我一定要申报$post
全球的,可能也值得用is_single()
和/或is_singular()
最后,在计算时间大于2周的部分,切换当前时间和发布日期。这对我有用:
/**
* Enqueue a stylesheet for posts older than two weeks.
*/
function hide_meta_for_older_posts() {
if ( is_single() || is_singular() ) {
global $post;
if ( time() - strtotime( $post->post_date ) > ( 2 * WEEK_IN_SECONDS ) ) {
wp_enqueue_style( \'remove-style-meta\', plugins_url( \'css/entrymetastyle.css\', __FILE__ ), false, \'1.0\', \'all\' );
}
}
}
add_action( \'wp_head\', \'hide_meta_for_older_posts\' );