返回的快捷码不正确

时间:2017-06-15 作者:Trenton Moore

我创建了一个短代码,根据一周中的哪一天显示图像。

   function custom_shortcode() {
        return \'<img src="/wp-content/themes/coworker/images/daily-social-image-\' . the_weekday() . \'.gif" width="100%" />\';
    }
    add_shortcode( \'weekday\', \'custom_shortcode\' );
问题是the_weekday() 不工作-其余代码似乎工作正常。

2 个回复
最合适的回答,由SO网友:Johansson 整理而成

你不应该在你的短代码中重复任何内容。the_weekday() 函数回显日期。您可以使用输出缓冲或直接获取日期:

输出缓冲:

function custom_shortcode() {
    ob_start();
    the_weekday();
    $week = ob_get_contents();
    ob_end_clean();
    return \'<img src="/wp-content/themes/coworker/images/daily-social-image-\' . $week . \'.gif" width="100%" />\';
}
add_shortcode( \'weekday\', \'custom_shortcode\' );
或使用全局$wp_locale 要筛选帖子的日期,请执行以下操作:

通过使用全局变量:

这是原始函数获取其内容的方式:

function custom_shortcode() {
    global $wp_locale;
    $weekday = $wp_locale->get_weekday( mysql2date( \'w\', get_post()->post_date, false ) );
    $week = apply_filters( \'the_weekday\', $weekday );
    return \'<img src="/wp-content/themes/coworker/images/daily-social-image-\' . $week . \'.gif" width="100%" />\';
}
add_shortcode( \'weekday\', \'custom_shortcode\' );

SO网友:Bikash Waiba

你没有the_weekend() 如果您指的是the_weekday() 你可以这样做来获得一周中的某一天

mb_strtolower(get_the_time(\'l\'));
get_the_time(\'l\') 返回星期几。既然你在外循环可以做什么

global $post;
get_the_time(\'l\', $post->ID)

结束

相关推荐

Using shortcode in Post title

我有很多帖子,其中我有本月的帖子标题。当月底,手动更改所有帖子有点烦人。因此,我创建了一个短代码来显示当前月份。我使用了add_filter( \'the_title\', \'do_shortcode\' );执行标题中的短代码。一切正常。问题是,在元标题中,显示的是原始短代码,而不是输出。有什么建议可以帮我解决吗。提前谢谢。