Is category

Is categoryCategory Management  is, actually, an Orange.  Well, not literally of course, but as an analogy it is the difference between implementing a procurement strategy about the pips of an Orange (traditional procurement) or implementing a strategy about the Orange (Category Management).

It’s interesting trying to explain to businesses who may be at the start of their procurement change journeys the difference between traditional procurement and best practice category management but recently one of our Future Purchasing consultants Alison Smith put it perfectly – it’s all about Oranges and pips. 

Click this link if you’re looking for a category management definition .

Traditional procurement focuses on price – perfectly sensible – and must always be considered – but  typical strategies include some kind of process to introduce leverage via some form of competitive tendering, measuring the previous price baseline with the new baseline and banking the savings.  This is where typical savings could be a few percentage points depending on how much the category has been leveraged to date.

Category Management, by contrast, recognises price as one aspect of the total opportunity and understands that through a thorough in depth review of the ‘buy’ that the biggest gains will be had by managing the internal demand (buying less) or optimising the specification (buying less, buying more efficiently).  Savings, through doing this, are much more likely to achieve 15, 20, even 30%+.

Take for example a typical service contract, perhaps the supply of temporary labour, and let’s assume we spend a cool million pounds per annum.  A price and cost analysis could demonstrate that around 80% of the final price paid could be made up of the pay to the individual, a further 15% could be made up of WTD and NI with the remaining 5% being the real ‘fee’, the real charge for the work done.  Of that 5% ‘charge’ though, an element of that pays towards the overheads of the supply organisation including head office staff, recruitment costs, insurance etc. leaving a small percentage that genuinely is profit to that organisation.  Let’s say 3% — or we could call it ‘the pips’.

Now an organisation operating a traditional procurement approach will point their Buyers at the cool million, and the CFO will say to the Buyer – there’s a million quid there, I think you can save 10%. Go and get me £100K.  Off goes the Buyer and thinks great, plenty of suppliers in temporary labour – I’ll give it a whirl, set up the eAuction, sit back and watch.  In reality though for the suppliers unless they change the nature of the people supplied, from a pure rate point of view the supplier can really only shave some of their profit margin – effectively they can only really do something commercial and tactical with about 30-50K.  Hence why a traditional procurement exercise may only yield £10 or £15K which could seem really disappointing on a total spend of £1M.  Now, clearly service organisations would be smart enough to recognise that total number would feel disappointing so it’s likely they would offer a higher number but with caveats – i.e. assuming you buy this different type of person in we could offer £50K (as this helps lower the cost of 80% of how their total price is made up). The Buyer needs to understand this as otherwise this could be hidden and the supplier margin could grow beyond sensible, unknowingly.

Contrast the above with an organisation operating Category Management and the CFO lays down the same gauntlet to the Category Manager.  The Category Manager gathers a cross functional team responsible for buying temporary labour – Finance to support interrogation and analysis, HR for the process, procedure, control and expertise, and operational stakeholders responsible for buying in most of the temporary labour to understand their needs and wants.  Together the team analyses the spend, and looks for trends, the supply market to understand the market dynamics, price and cost analysis to develop the cost model with data (not guesswork), supplier analysis to work out who seems right sized against our organisation and some serious internal consideration about what the business needs and wants.  The analysis may throw up some interesting information like the areas that buy more temporary labour are struggling to achieve internal sign off for new permanent staff, so they’re buying in more expensive day rate temps to provide cover for extensive periods, let’s say at a cost that’s 10% more than the permanent equivalents.  Or that it typically takes a new recruit 3 working weeks of on the job training before they start to do the job efficiently which could be a ¼ of the typical tenure of a temp – or put another way, £250K per annum could be considered ‘non value added’.   So when the Category Management team, facilitated by the Category Manager, gets to brainstorming strategic options it includes all manner of value levers from employing traditional sourcing techniques such as tactical price leverage & rationalisation (which could get some £10-15K perhaps), but also the cross functional team may also consider items like improving the internal sign off process for permanent recruitment, so as to capture that potential £250K of training ‘waste’.  During evaluation they may decide that genuinely insourcing an element (moving to perm) could eliminate say £100K of the £250K.  Also the total annualised cost of moving a proportion to permanents could save 10%, and evaluation of the total million pounds could suggest this is viable for 30% of the spend – or put another way £30K.  Finally they could agree that the temps they’re buying in are usually overqualified – (back to needs versus wants) and that for short term cover only they could be satisfied with someone who may cost up to 50% less that the current ask.  Let’s pretend that was agreed for half the total spend – that could suddenly access £200K.  The Category Management team thus can go back to the CFO and offer the CFO £10K rate benefit, £100K elimination of training waste time, £30K benefit moving a proportion of the spend from temps to perms and £200K buying in, effectively, a reduced specification.  By evaluating the whole ‘Orange’, the team have offered business benefits of £440K+ of annualised run rate benefits.  Happy days.  Just got to implement it now – which is easier said than done!

1. Главная страница

Часто хотим, чтобы определенная информация выводилась только на главной странице. Для решения можно создать в папке Вашей темы файл home.php или в файл index.php внести следующее условие:

  <?php if(is_home()) { ?>  <div>  ....Здесь выводим информацию,  которую мы хотим видеть на главной странице  </div>  <?php } ?>

2. Проверяем рубрики

Зададим такое условие: Если мы находимся в рубрике WordPress, то выведем фразу «Вас приветствует, WordPress!», а если нет то фразу «Добро пожаловать, на наш сайт!»

  <?php if(is_category('id')) :  echo "Вас приветствует, WordPress!";  else :  echo "Добро пожаловать, на наш сайт!";  endif;  ?>    /*Можно и такой схемой*/  <?php if(is_category('id')) { ?>  <p>"Вас приветствует, WordPress!"</p>  <?php } else { ?>  <p>Добро пожаловать, на наш сайт!"</p>  <?php } ?>

Здесь и дальше в качестве идентификатора рубрики(метки) или записи(страницы) я буду использовать id — его можно узнать в панели управления сайтом. Если Вы пишете условия для рубрик(меток) то смотрите id на странице рубрик(меток), а если записей(страниц) — то на странице всех записей(страниц)… паника). Как все-таки узнать?, — смотрите иллюстрацию:

Полноценно используем условие if

Идем далее по условиям связанных с рубриками и зададим следующее: «Если запись находится в рубрике WordPress, то вывести слова — Статья из рубрики WordPress»:

  <?php if(in_category('id')) :  echo 'Статья из рубрики WordPress';  endif; ?>

И еще такой финт 🙂 допустим нам нужно условие для проверки нескольких рубрик, тогда условия будут иметь вид:

  <?php if(is_category(array(1,2,34,48)) or in_category(array(1,2,33,50))) : ?>  <p>выведем то, что нам нужно</p>  <?php endif; ?>

3. Проверяем метки

Метки — крутой классификатор внутри рубрик. Рассмотри несколько примеров, как их можно проверить.

Задача: Если запись имеет метку "plugin", то вывести фразу — WordPress Plugin


  <?php if(has_tag('plugin')) :  echo 'WordPress Plugin';  endif; ?>

Задача: Если находимся на странице метки "plugin", то вывести фразу — Коллекция плагинов WordPress.


  <?php if(is_tag('plugin')) :  echo 'WordPress Plugin';  endif; ?>

Примечание: в работе с условиями меток лучше пользоваться ярлыком метки, а не ее идентификатором.


Я рассмотрел основные условные теги, если у Вас есть какие-то вопросы задавайте их в комментариях! Удачного использования!

What is a category?

A category $mathsf{C}$ consists of some data that satisfy certain properties:

The Data

  • a class of objects, $x,y,z,ldots$
  • a set* of morphisms between pairs of objects; $xoverset{f}{longrightarrow} y$ means «$f$ is a morphism from $x$ to $y$,» and the set of all such morphisms is denoted $text{hom}_{mathsf{C}}(x,y)$
  • a composition rule: whenever the codomain of one morphism matches the domain of another, there is a morphism that is their composition, i.e. given $xoverset{f}{longrightarrow} y$ and $yoverset{g}{longrightarrow} z$ there is a morphism $xoverset{g:circ f}{longrightarrow} z$.

The Properties

  • Each object $x$ has an identity morphism $xoverset{text{id}_x}{longrightarrow} x$ which satisfies $text{id}_ycirc f=f=fcirctext{id}_x$ for any $xoverset{f}{longrightarrow} y$.
  • The composition is associative: $(hcirc g)circ f = hcirc(gcirc f)$ whenever $$xoverset{f}{longrightarrow}yoverset{g}{longrightarrow}zoverset{h}{longrightarrow}w.$$

Here’s a picture of a category with four objects—depicted as bold dots instead of letters—and some morphisms between them. The gray arrow at each object indicates its identity morphism.

Last time I listed a few examples of categories but never provided the proofs. To make sure you’re comfortable with the definition, try proving a few of them. For example, to form the category of groups, we declare the objects to be groups and the morphisms to be group homomorphisms. But we should check: is the composition of two group homomorphisms another group homomorphism? (Or is it merely a function?) Is this composition associative? And is the identity function from a group to itself a group homomorphism? (Or, again, is it merely a function?)

I also mentioned briefly that every poset (a set with a binary relation that is reflexive, transitive, and antisymmetric) is a category. This turns out to be a useful example, so let’s be explicit.

Example #1: a poset

Every poset $P$ forms a category. The objects are the elements of $P$ and there is a morphism $xto y$ whenever $xleq y$.         

Composition holds because of transitivity: if $xleq y$ and $yleq z$ then $xleq z$.          

The identity-morphism property holds because of reflexivity: $xleq x$ is always true. Therefore there is an arrow $xoverset{text{id}_x}{longrightarrow} x$ satisfying $fcirctext{id}_x=f$ for any morphism $f$,          

and similarly $text{id}_ycirc f=f$.         

Associativty holds too. (What would the picture for this look like?) In particular, we’ve just shown that $mathbb{Z},mathbb{Q}$, and $mathbb{R}$ are all categories! We could have deduced this from the next example as well.

Example #2: a group

Every group $G$ can be viewed as a category—called $mathsf{B}G$ (for cool reasons)—with a single object which we’ll denote by $bullet$. There is a morphism $bulletoverset{g}{longrightarrow}bullet$ for each element $gin G$, and composition holds since $G$ is closed under the group operation. That is, if $g,hin G$ so that $bulletoverset{g}{longrightarrow}bulletoverset{h}{longrightarrow}bullet$ are two composable morphisms, then there is a third morphism $bulletoverset{hg}{longrightarrow}bullet$ that is their composition, namely the one corresponding to the element $hgin G$. Finally, the group identity $ein G$ serves as the identity morphism for $bullet$, and associativity holds because the group operation is associative.

Работающие примеры

Здесь несколько примеров для демонстрации того, как следует использовать условные теги.

Одиночный пост

Этот пример показывает как использовать условный тег is_single () для того, чтобы отобразить информацию только на странице одиночного поста:

<?php if (is_single())
echo 'Это один из постов в рубрике ' . single_cat_title() . ', вот так!';

Разница, основанная на дате

Если кто-то просматривает ваш блог по датам, то он увидит «помеченные» посты разных лет разным цветом бэкграунда:

// начинаем Цикл
if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h2 id="post-<?php the_ID(); ?>">
<a href="<?php the_permalink() ?>" rel="bookmark" title="Постоянная ссылка <?php the_title(); ?>">
<?php the_title(); ?></a></h2>
<small><?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></small><?php
// если отображаем архив даты
if (is_date())
if (date('Y') != get_the_date('Y'))
// этот пост был написан в прошлом году
// поэтому припишем css класс "oldentry" к блоку с постом,
// чтобы придать ему отличный от других блоков вид
echo '<div class="oldentry">';
} else {
echo '<div class="entry">';
} else {
echo '<div class="entry">';
the_content('Далее »');

Разный контент в боковой колонке (сайдбаре)

Этот пример выводит различный контент в боковой колонке в зависимости от того, какой тип контента просматривается в текущий момент.

<!-- начало боковой колонки -->
<div id="sidebar">
// let's generate info appropriate to the page being displayed
if (is_home()) {
// на главной странице покажем список рубрик первого уровня:
echo "<ul>";
echo "</ul>";
} elseif (is_category()) {
// на странице рубрики покажем все рубрики всех уровней
echo "<ul>";
echo "</ul>";
} elseif (is_single()) {
// на странице одиночного поста покажем... что-нибудь, впишите сами:

} elseif (is_page()) {
// на странице Постоянной страницы. А какой именно?
if (is_page('Обо мне')) {
// Постоянная страница About
echo "<p>Это страница обо мне!</p>";
} elseif (is_page('Используемые плагины')) {
echo "<p>На этой странице список используемых плагинов, я использую WordPress версии " . bloginfo('version') . "</p>";
} else {
// для всех других Статичных страниц
echo "<p>Привет, я Педро!</p>";
} else {
// для всех остальных типов страниц (архивов, страницы рез-тов поиска, 404 ошибки и т.д.)
echo "<p>Педро славный парень.</p>";
} // на этом все!
<form id="searchform" method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="text" name="s" id="s" size="15" />
<input type="submit" value="<?php _e('Search'); ?>" />
<!-- конец боковой колонки -->

You May Also Like

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.