在某些帖子和页面之前添加免责声明

时间:2017-01-25 作者:Jim

遵守FTC guidelines, 我正试图让所有带有附属链接的帖子在帖子之前都有一个免责声明。在考虑了不同的选项后,最有意义的想法是在我的帖子上添加诸如“附属”之类的附属链接然后我可以使用一些代码来给出我想要的免责声明。

所以我找到了一些代码widget before post content.

/** Register Before Post Widget Area.*/
function wpsites_before_post_widget() {

     register_sidebar( array(
        \'name\' => \'Before Post Widget\',
        \'id\' => \'before-post\',
        \'before_widget\' => \'<div>\',
        \'after_widget\' => \'</div>\',
    ) );
}
add_action( \'widgets_init\', \'wpsites_before_post_widget\' );

function before_post_widget($content) {

if ( is_singular(array(\'post\', \'page\')) && is_active_sidebar( \'before-post\' ) && is_main_query() ) { 
            dynamic_sidebar(\'before-post\', array(
        \'before\' => \'<div class="before-post">\',
            \'after\' => \'</div>\',
    ) );

    return $content;

    }

}

add_filter( \'the_content\', \'before_post_widget\' );
这很有效,给了我一个“发布前小部件”我添加了我的免责声明文本,它出现在我所有的帖子上。现在我只需要让它只显示在带有“附属”标签的页面上。

我已经安装了Jetpack,所以我可以将小部件的可见性设置为“显示标签是否为附属标签”对我来说很有意义,而且似乎很容易。

问题是,在任何没有标签的帖子上,帖子内容都会完全丢失。其他一切都保留了下来(标题、侧边栏、共享等),但所有内容都消失了。

我确保在处理这个问题之前关闭所有缓存,只是为了确保我没有搞砸任何事情,并使用未登录到我网站的其他浏览器进行测试,但问题仍然存在。

另一个问题是,在我的页面(非帖子)上,免责声明文本只会在包括标题在内的所有内容上方显示两次。

我不得不从函数中删除代码。php使一切恢复正常。

我对PHP不太熟悉-显示的代码有意义吗?或者应该对其进行一些更改吗?有没有更好的方法在我的帖子上使用附属标签来实现这一点?

谢谢你的帮助!

--吉姆

1 个回复
最合适的回答,由SO网友:Daniel Lemes 整理而成

有没有更好的方法在我的帖子上使用附属标签来实现这一点?

当然,我会选择一个更简单的选择,而不是依赖Jetpack之类的插件。

你为什么不试试has_tag 作用类似这样:

function tt_filter_the_content( $content ) {
    if (has_tag(\'affiliate\'))
    $custom_content = \'YOUR MESSAGE\';
    $custom_content .= $content;
    return $custom_content;
}
add_filter( \'the_content\', \'tt_filter_the_content\' );
这将过滤你的内容,并在所有带有“附属”标签名的帖子上添加你的“你的消息”。

参考https://developer.wordpress.org/reference/functions/has_tag/

相关推荐

无法在模板函数.php中使用IS_HOME

我试图在标题中加载一个滑块,但只在主页上加载。如果有帮助的话,我正在使用Ultralight模板。我正在尝试(在template functions.php中)执行以下操作:<?php if ( is_page( \'home\' ) ) : ?> dynamic_sidebar( \'Homepage Widget\' ); <?php endif; ?> 但这行不通。现在,通过快速的google,我似乎需要将请