如何在内容之前和之后添加所有类别页面的默认内容?

时间:2017-02-20 作者:Sammy

我有一个优惠券网站,我的主要内容是在类别(商店)页面下。

我想向所有商店添加默认内容,这样就可以避免在我创建的每个新商店页面中添加内容。

此外,我想在商店页面的内容(优惠券)之后添加默认文本。

有人帮我吗?比如在哪里添加内容或向函数传递值?

提前感谢!

1 个回复
SO网友:LWS-Mo

如果我理解正确,如果您在类别“store”中创建新帖子,您需要一些默认内容。

尝试使用the_content() 此处筛选:

add_filter( \'the_content\', \'add_default_content\' ); 

function add_default_content( $content ) { 

    //run only when we are in the category "store"
    //could also be "coupons"
    if ( in_category(\'store\') ) {

        //define your default text here
        $default = \'My default content is here.\';

        // this will display the new default content first, 
        // after that the normal post-content you entered in the post-editor will be shown
        $content = $default . $content;

    }//END if is category

    return $content;
}
这将检查当前职位是否属于该类别。

看看这条线$content = $default . $content;

此行将首先显示新的默认内容($default) 之后,它将显示post editor内容($content).

如果您没有在帖子编辑器中输入任何内容,则只会显示默认文本。

您也可以重新排列此行:$content = $content . $default;

在这种情况下,将首先显示post editor内容,然后显示默认文本。

因此,您可以创建两个函数,一个用于post editor之前的内容,另一个用于post editor之后的内容。

<小时>

Update:

@萨米,好的,我刚看了你的网站。似乎您使用的主题来自http://www.premiumpress.com.

我上面发布的代码适用于普通帖子类别,如果您使用的是自定义类型、分类法和术语,请尝试以下操作:

if ( has_term(\'term-slug\', \'taxonomy-slug\') ) { ... }
<小时>

Update 2:

你说过\'store\' 是一种分类法,所以我刚刚测试了这个:

我创建了一个名为\'store\' 并在分类法中添加了一些术语。我编辑了一些帖子,并在这些帖子中添加了一些新的商店分类术语。

我将此代码添加到functions.php:

add_filter( \'the_content\', \'add_default_content\' );

function add_default_content( $content ) {

        // only show the default content if the post is in taxonomy \'store\'
        // true if the current post has any of the given terms (or any term, if no term is specified)
        // we leave \'term\' empty, we just specify the taxonomy
        if ( has_term( \'\', \'store\' ) ) {

            //define your default text here
            $default = \'This is the default content.\';

            // this will display the new default content first, 
            // after that the normal post-content you entered in the post-editor will be shown
            $content = $default . $content;

        }//END if has_term

        return $content;

    }
之后,我看到新内容“这是默认内容。”,仅在使用\'store\' 分类学无论添加了哪个术语。

正如您在codex, 如果我们没有指定任何术语has_term() 函数将检查帖子是否有任何分类术语。所以has_term() 返回true。