Добавить пользовательский контент для публикации на основе категории - PullRequest
0 голосов
/ 20 сентября 2019

Я хочу добавить пользовательский контент перед основной публикацией контента на основе категории.

То, что я пробовал, и на самом деле это работает - вставить пользовательский код во второй абзац:

add_filter('the_content', 'mte_add_incontent_ad');
function mte_add_incontent_ad($content)
{   if(is_single()){
        $content_block = explode('<p>',$content);
        if(!empty($content_block[1]))
        {   $content_block[1] .= 'My custom text here!';
        }
        for($i=1;$i<count($content_block);$i++)
        {   $content_block[$i] = $content_block[$i];
        }
        $content = implode('',$content_block);
    }
    return $content;    
}

Я нашел простое решение поместить пользовательский текст в определенную категорию, но, похоже, он не работает:

if ( in_category('my-category-1-slug') ) { 
 echo '<p>
custom text to insert
</p>';
 }
if ( in_category('my-category-2-slug') ) { 
 echo '<p>
custom text to insert
</p>';
 }

Окончательные результаты должны выглядеть примерно так:

Заголовок сообщения

Пользовательское содержание сообщения для категории 1. Исходное содержимое сообщения.


Заголовок сообщения

Пользовательское содержимое сообщения для категории 2. Исходное сообщениесодержание.

Заранее спасибо!

1 Ответ

0 голосов
/ 20 сентября 2019

Я придумал это решение:

add_filter('the_content', 'mte_add_incontent_ad');
function mte_add_incontent_ad($content)
{   if( is_category(1) ){
        $content_block = explode('<p>',$content);
        if(!empty($content_block[1]))
        {   $content_block[1] .= 'My custom text for category 1';
        }
        for($i=1;$i<count($content_block);$i++)
        {   $content_block[$i] = $content_block[$i];
        }
        $content = implode('',$content_block);
    }
    return $content;    
}
...