markratledge
  • 0
Гуру

Контент по умолчанию для публикации в одной категории?

  • 0

Это обычная функция, которая добавляет текст по умолчанию ко всем сообщениям:

add_filter( 'default_content', 'my_editor_content' );
function my_editor_content( $content ) {
    $content = "default content goes here....";
    return $content;
}

Как это изменить, чтобы добавить контент по умолчанию только к сообщению в одной категории?

10.04.11 Не точный ответ, но несколько вариантов ниже в моем собственном ответе

Share
  1. Фильтр запускается только для новых сообщений, в этот момент нет никакой связи между этим сообщением и какой-либо таксономией.

    • 0
  2. Одним из возможных вариантов является этот вопрос / ответ здесь от Яна Фабри, который запрашивает контент по умолчанию в процессе создания нового сообщения: Принудительно выбрать категорию перед созданием нового сообщения?

    В итоге я использовал Quicktag как способ легко вставить контент в сообщение, и поскольку контент по умолчанию был html, он пока работает так хорошо, как только может. Но в будущем, как оказалось, будет способ добавить контент по умолчанию в пост, когда этот пост будет сохранен в этой категории, и это будет хорошо.

    Функция быстрых тегов для functions.php:

    //Custom Quicktags Function
    
    function my_quicktags() {
        wp_enqueue_script('custom_quicktags',
        get_bloginfo('template_directory').'/custom-quicktags.js', array('quicktags'));
    }
    add_action('admin_print_scripts', 'my_quicktags');
    

    Пример кода Quicktags для custom-quicktags.js, который находится в папке темы:

    edButtons[edButtons.length] =
    new edButton('newbutton1'
    ,'TagButtonName'
    ,'html, like <div>'
    ,'and more </div>'
    ,''
    );
    
    • 0
  3. Вы можете глобализировать $post и проверить, есть ли у него нужная категория:

    add_filter( 'default_content', 'my_editor_content' );
    function my_editor_content( $content ) {
        global $post;
        $the_one_category_id= '12'; //the category you want this to work on id
        $args= array('orderby' => 'name', 'order' => 'ASC', 'fields' => 'ids');
        $cats = wp_get_object_terms($post->ID, 'category',$args);
        if (in_array($the_one_category_id,$cats)){
            $content = "default content goes here....";
        }
            return $content;
        }
    
    • 0

Оставить ответ

You must login to add an answer.