Archive-Pro-Matic Advanced Category Archives

Building on the new block-style archive described in the last post, we now try with categories:

All Categories:

[archives type="monthly" taxonomy="category" sub_options="block" tag="div" sub_ul_class="my_slim_ul" li_class="block_archive_item" limit="10"/]

Single Category

[archives type="monthly" taxonomy="category" term="archive-pro-matic" sub_options="block" tag="div" sub_ul_class="my_slim_ul" li_class="block_archive_item" limit="10"/]

or use the cat attribute:

[archives type="monthly" cat="special1-posts" sub_options="block" tag="div" sub_ul_class="my_slim_ul" li_class="block_archive_item" limit="10"/]

or use the category attribute (alias for cat):

[archives type="monthly" category="special1-posts" sub_options="block" tag="div" sub_ul_class="my_slim_ul" li_class="block_archive_item" limit="10"/]

Multiple Categories

For an archive of multiple categories, the cat_id attribute must be used:

[archives type="monthly" cat_id="55,43" sub_options="block" tag="div" sub_ul_class="my_slim_ul" li_class="block_archive_item" limit="10"/]

Archive-Pro-Matic – Advanced Monthly Sub Archives

This is a test to create a category archive in the following format:

  • 2023
  • Jan
  • Feb
  • Mar
  • Apr
  • May
  • Jun
  • Jul
  • Aug
  • Sep
  • Oct
  • Nov
  • Dec
  • 2021
  • Jan
  • Feb
  • Mar
  • Apr
  • May
  • Jun
  • Jul
  • Aug
  • Sep
  • Oct
  • Nov
  • Dec


Step one: allow the sub_options attribute to work with standard monthly archives.

[archives type="monthly" sub_options="true" limit="10" /]

Step two: add new feature to allow sub_options to be sorted ASC (1 – 12) or DESC (default: 12 – 1). New attribute: sub_order

[archives type="monthly" sub_options="true" sub_order="ASC" limit="10" /]


Step three: add the ability show empty months as placeholders. New attribute: show_empty

[archives type="monthly" sub_options="true" show_empty="true" limit="10" /]

Step four: allow month date to be formatted: January becomes Jan. New attribute: month_format just use the date_format attribute

[archives type="monthly" sub_options="true" month_format="M" sub_order="ASC" show_empty="true" limit="10" /]

Step five: test that this works with category filters. Here we use cat_id to only show archives for category id 55:

[archives type="monthly" cat_id="55" sub_options="true" sub_order="ASC" show_empty="true" limit="10" month_format="M"/]

A single category archive can be shown using the category slug with the cat attribute:

[archives type="monthly" cat="collapse-pro-matic" sub_options="true" sub_order="ASC" show_empty="true" month_format="m" limit="10" /]

Step six: adjust format so year and months are displayed in a single line. The following attributes have been added to add classnames to the archive elements for styling:

  • class – classname for the archive element
  • li_class – classname for a LI element
  • sub_ul_class – classname for a sub ul element
  • sub_li_class – classname for a sub LI element
  • empty_class – classname for an empty LI element

To test this we first need to define some simple classes:

.my_clean_achive {
   border: 1px dotted black;
}
.my_sub_achive {
   border: 1px dotted red;
}
.red a {
   color: red;
   font-weight: bold;
}
.green a {
   color: green;
}
.grey {
   color: #999999;
}

Now we just need to assign the classes to the archive elements:

[archives type="monthly" cat="collapse-pro-matic" sub_options="true" sub_order="ASC" show_empty="true" month_format="M" limit="10" class="my_clean_achive" sub_ul_class="my_sub_achive" li_class="red" sub_li_class="green" empty_class="grey"/]

Now that we can control the CSS of every element we can finally create a block style archive using the following css:

.block_archive_item {
    display:inline;
    margin-left: 5px;
    white-space: nowrap;
}
.block_archive_item a {
   color: red;
}

[archives type="monthly" cat="collapse-pro-matic" sub_options="true" sub_order="ASC" show_empty="true" month_format="M" limit="10" li_class="block_archive_item" empty_class="grey"/]

Nearly there:

  • 2023
    • Jan
    • Feb
    • Mar
    • Apr
    • May
    • Jun
    • Jul
    • Aug
    • Sep
    • Oct
    • Nov
    • Dec
  • 2021
    • Jan
    • Feb
    • Mar
    • Apr
    • May
    • Jun
    • Jul
    • Aug
    • Sep
    • Oct
    • Nov
    • Dec
  • 2020
  • 2018
  • 2017
    • Jan
    • Feb
    • Mar
    • Apr
    • May
    • Jun
    • Jul
    • Aug
    • Sep
    • Oct
    • Nov
    • Dec
  • Now if we do not want the sub_options (months in this case) to be in a separate element (ul) we need a way let the system know: new accepted value ‘block’ for the sub_options attribute: sub_options=”block”.

    [archives type="monthly" sub_options="block" limit="10" /]

    We also no longer need to wrap the entire archive in a UL element, so we use tag=”div”. Finally we need to assign a sub_ul_class to slim down the sub_ul elements:

    .my_slim_ul {
       margin: 0;
    }
    
    [archives type="monthly" cat="collapse-pro-matic" sub_options="block" sub_order="ASC" show_empty="true" date_format="M" limit="10" 
    tag="div" sub_ul_class="my_slim_ul" li_class="block_archive_item" empty_class="grey"/]

    The final result:

    • 2023
    • January
    • February
    • March
    • April
    • May
    • June
    • July
    • August
    • September
    • October
    • November
    • December
    • 2021
    • January
    • February
    • March
    • April
    • May
    • June
    • July
    • August
    • September
    • October
    • Nov
    • December
    • 2020
    • January
    • February
    • Mar
    • April
    • May
    • June
    • July
    • Aug
    • September
    • October
    • November
    • December
    • 2018
    • Jan
    • February
    • March
    • April
    • May
    • June
    • Jul
    • Aug
    • September
    • October
    • November
    • December
    • 2013
    • Jan
    • February
    • March
    • Apr
    • May
    • June
    • July
    • August
    • September
    • October
    • Nov
    • December
    • 2012
    • January
    • February
    • March
    • April
    • May
    • June
    • July
    • August
    • Sep
    • October
    • November
    • Dec

    Done!

    Here is a test using the new link_atts attribute:

    [archives type="monthly" cat="collapse-pro-matic" sub_options="block" sub_order="ASC" show_empty="true" date_format="M" limit="10" 
    tag="div" sub_ul_class="my_slim_ul" li_class="block_archive_item" empty_class="grey" link_atts="target='_blank'"/]
    • 2023
    • January
    • February
    • March
    • April
    • May
    • June
    • July
    • August
    • September
    • October
    • November
    • December
    • 2021
    • January
    • February
    • March
    • April
    • May
    • June
    • July
    • August
    • September
    • October
    • Nov
    • December
    • 2020
    • January
    • February
    • Mar
    • April
    • May
    • June
    • July
    • Aug
    • September
    • October
    • November
    • December
    • 2018
    • Jan
    • February
    • March
    • April
    • May
    • June
    • Jul
    • Aug
    • September
    • October
    • November
    • December
    • 2013
    • Jan
    • February
    • March
    • Apr
    • May
    • June
    • July
    • August
    • September
    • October
    • Nov
    • December
    • 2012
    • January
    • February
    • March
    • April
    • May
    • June
    • July
    • August
    • Sep
    • October
    • November
    • Dec

    Grouping with Rel vs Togglegroup Attbitues

    Rel Attribute

    Here is an example of using the rel attribute. Notice how selecting a member of one group will auto-collapse members of all other groups.

    [expand title="Star Wars" rel="fiction" swaptitle="Not Star Trek"]Target Content[/expand]
    [expand title="Star Trek" rel="fiction"]Target Content[/expand]
    [expand title="Battlestar Galactica" rel="fiction"]Target Content[/expand]
    [expand title="Space Race" rel="history"]Target Content[/expand]
    [expand title="Ansari X Prize" rel="history"]Target Content[/expand]
    Star Wars
    Target Content
    Star Trek
    Target Content
    Battlestar Galactica
    Target Content
    Space Race
    Target Content
    Ansari X Prize
    Target Content

    Togglegroup Attribute

    Here is an example using the togglegroup attribute. Members of multiple togglegroups may be open at the same time.

    [expand title="Star Wars" togglegroup="togfiction"]Target Content[/expand]
    [expand title="Star Trek" togglegroup="togfiction"]Target Content[/expand]
    [expand title="Battlestar Galactica" togglegroup="togfiction"]Target Content[/expand]
    [expand title="Space Race" togglegroup="toghistory"]Target Content[/expand]
    [expand title="Ansari X Prize" togglegroup="toghistory"]Target Content[/expand]
    Star Wars
    Target Content
    Star Trek
    Target Content
    Battlestar Galactica
    Target Content
    Space Race
    Target Content
    Ansari X Prize
    Target Content

    Rel Highlander Grouping

    Here is an example using the rel attribute with highlander grouping:

    [expand title="Star Wars" rel="fiction-highlander" swaptitle="Not Star Trek"]Target Content[/expand]
    [expand title="Star Trek" rel="fiction-highlander"]Target Content[/expand]
    [expand title="Battlestar Galactica" rel="fiction-highlander"]Target Content[/expand]
    [expand title="Space Race" rel="history-highlander"]Target Content[/expand]
    [expand title="Ansari X Prize" rel="history-highlander"]Target Content[/expand]
    Star Wars
    Target Content
    Star Trek
    Target Content
    Battlestar Galactica
    Target Content
    Space Race
    Target Content
    Ansari X Prize
    Target Content

    Highlander Grouping using Togglegroup Attribute

    [expand title="Monkeys" togglegroup="animal-highlander"]Target Content[/expand]
    [expand title="Donkeys" togglegroup="animal-highlander"]Target Content[/expand]
    [expand title="Tigers" togglegroup="animal-highlander"]Target Content[/expand]
    [expand title="Bears" togglegroup="animal-highlander"]Target Content[/expand]
    [expand title="Porsche" togglegroup="car-highlander"]Target Content[/expand]
    [expand title="Volvo" togglegroup="car-highlander"]Target Content[/expand]
    [expand title="Mercedes" togglegroup="car-highlander"]Target Content[/expand]
    Monkeys
    Target Content
    Donkeys
    Target Content
    Tigers
    Target Content
    Bears
    Target Content
    Porsche
    Target Content
    Volvo
    Target Content
    Mercedes
    Target Content

    Group Attribute

    This is a test of the group attribute which is being considered to replace rel, will be used as an alias for now:

    [expand title="Star Wars" group="gfic" swaptitle="Not Star Trek"]Target Content[/expand]
    [expand title="Star Trek" group="gfic"]Target Content[/expand]
    [expand title="Battlestar Galactica" group="gfic"]Target Content[/expand]
    [expand title="Space Race" group="ghis"]Target Content[/expand]
    [expand title="Ansari X Prize" group="ghis"]Target Content[/expand]
    Star Wars
    Target Content
    Star Trek
    Target Content
    Battlestar Galactica
    Target Content
    Space Race
    Target Content
    Ansari X Prize
    Target Content

    Quick test to make to see if our ‘number’ issue has been fixed:

    [expand title="123" rel="123"]this is a number group[/expand]
    [expand title="456" rel="456"]this is also a number group[/expand]
    123
    this is a number group
    456
    this is also a number group

    Archive-Pro-Matic – Quarterly and Seasonal Archives


    Warning: Undefined variable $url in /var/www/vhosts/spacedonkey.de/httpdocs/wp-content/plugins/archive-pro-matic/archive-pro-matic.php on line 624

    Deprecated: strstr(): Passing null to parameter #1 ($haystack) of type string is deprecated in /var/www/vhosts/spacedonkey.de/httpdocs/wp-includes/functions.php on line 1147

    Deprecated: stripos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /var/www/vhosts/spacedonkey.de/httpdocs/wp-includes/functions.php on line 1154

    Deprecated: stripos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /var/www/vhosts/spacedonkey.de/httpdocs/wp-includes/functions.php on line 1157

    Deprecated: str_contains(): Passing null to parameter #1 ($haystack) of type string is deprecated in /var/www/vhosts/spacedonkey.de/httpdocs/wp-includes/functions.php on line 1164

    Deprecated: str_contains(): Passing null to parameter #1 ($haystack) of type string is deprecated in /var/www/vhosts/spacedonkey.de/httpdocs/wp-includes/functions.php on line 1167

    Archive-Pro-Matic has two new archive types (Quarterly and Seasonally) and a couple new advanced shortcode attributes to manage seperators (sep) and sub options as described below:

    Quarterly Archives

    Example of the new quarterly archive type:

    [archives type="quarterly" limit="10" /]

    Seasonal Archives

    Seasonal archives are a bit more complex. First the plugin is currently limited to only four (4) seasons per year. The season names and starting dates can be defined in the plugin options as shown in the following screanshot:

    Season names and dates are easily defined. Only the month and day is used, the year is ignored.

    Simple example of seasonal archives:

    [archives type="seasonally" limit="10" /]

    New Attribute: sub_options

    Setting sub_options to ‘true’ for quarterly or seasonally archive types will present the year with the quarterly or seasonal archives below like so:

    [archives type="seasonally" sub_options="true" limit="10" /]

    Of course this also works in a drop-down select element:

    [archives type="seasonally" format="option" sub_options="true" limit="10" /]

    However, when setting format=”option” the sub_options could use a little separation. Therefore we have created a new sep attribute:

    New Attribute: sep

    Same example as above, this time with some fancy sub_option separation, and highlight current season if on archive page:

    [archives type="seasonally" format="option" sub_options="true" sep="— " highlight="active-season" limit="20" /]

    Collapse-Pro-Matic Cookie Based Expand

    This is a demo of how to use a cookie to auto-collapse a expand element that is expanded by default. The idea is to set up an expand element this is expanded by default, but if a user collapses it once, it will no longer load auto-expanded for that user until the cookie expires.

    For example the following expand element should be auto-expanded until it is manually collapsed. After this, the element will remain collapsed when the page is revisited.

    [expand title="test" expanded="once" cookiename="my_cookie"]hidden content[/expand]
    test
    hidden content

    Archive-Pro-Matic Category Test


    Warning: Undefined variable $url in /var/www/vhosts/spacedonkey.de/httpdocs/wp-content/plugins/archive-pro-matic/archive-pro-matic.php on line 624

    Deprecated: strstr(): Passing null to parameter #1 ($haystack) of type string is deprecated in /var/www/vhosts/spacedonkey.de/httpdocs/wp-includes/functions.php on line 1147

    Deprecated: stripos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /var/www/vhosts/spacedonkey.de/httpdocs/wp-includes/functions.php on line 1154

    Deprecated: stripos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /var/www/vhosts/spacedonkey.de/httpdocs/wp-includes/functions.php on line 1157

    Deprecated: str_contains(): Passing null to parameter #1 ($haystack) of type string is deprecated in /var/www/vhosts/spacedonkey.de/httpdocs/wp-includes/functions.php on line 1164

    Deprecated: str_contains(): Passing null to parameter #1 ($haystack) of type string is deprecated in /var/www/vhosts/spacedonkey.de/httpdocs/wp-includes/functions.php on line 1167

    This is a test for displaying archive-pro-matic category archives.

    Single Category

    [archives type="monthly" cat="collapse-pro-matic" /]

    But what about taxonomies, post tags for example? We can get a monthly archive for a specific post tag like so:

    [archives type="monthly" term="manhole" taxonomy="post_tag" /]

    Or all post tags by month. The following will list only posts that have at least one post tag assigned, grouped by month:

    [archives type="monthly" taxonomy="post_tag" /]

    And as a drop-down list:

    [archives type="monthly" taxonomy="post_tag" sep=" > " format="option" /]

    Special request: Years and each year’s tags as a subsets in a select drop-down:

    [archives type="yearly" taxonomy="post_tag" sep="ā€”" format="option" sub_options="true"/]

    New “Quarterly” type:

    [archives type="quarterly" /]
    [archives type="quarterly" format="option" sep=" - " sub_options="true" /]

    Nes Archive Type “Seasonally”:

    [archives type="seasonally" /]
    [archives type="seasonally" format="option" sep=" - " sub_options="true" /]

    Inline Test

    Leo Love and Sex

    Leo’s, being of a Fire sign, are heartfelt and passionate, being capable of expressing their feelings effortlessly and with transparency. Toward their beloved they […CLICK TO EXPAND] are giving, respectful, devoted and fun. They are strongly independent and driven, and so will try to be the dominate party of the relationship. The partner of a Leo may grow tired of being domineered, in particular if the Leo imposes their will upon matters that are not of their concern. In order to tolerate the Leo’s strong imposing will, the partner of a Leo needs to be learned and at an equivalent intellect. They also need to be willing to speak up for themselves and to defend their ground, else the blazing Sun of the Leo will scorch their personality. The Leo’s sex life is dynamic, fun and adventurous. They are very aware of the fine line separating love and sex, which can cause them trouble within an established relationship if they too often neglect to show intimacy or connect emotionally with their partner during love making. Ultimately, Leo’s want that their partners peer past their self-centered shell and look deep into their subconscious sensitive core, so as to search out their want of satisfaction resulting from a purposeful relationship. Leo Love Compatibility: Aries, Gemini, Libra, Sagittarius! [CLICK TO HIDE]

    T(-) Countdown Gutenberg Test

    This is a test for integrating T(-) Countdown with Gutenberg Blocks.
    First, we need to tidy up how the Javascript is being used. Here is a basic countdown that uses a gutenberg block set to 2 minutes.

    Now let’s try a shortcode with a launch target of an external element.

    This is a block with an id of ‘monkeymonk’
    [tminus t="+10 secs" launchtarget="#monkeymonk"]monkey is in spaceā€¦ space monkey![/tminus]
    weeks
    0
    0
    days
    0
    0
    hours
    0
    0
    minutes
    0
    0
    seconds
    1
    0

    Of course, we can still use the old countdown (default), above and below targets:

    [tminus t="+10 secs" launchtarget="tophtml"]this is the tophtml target area[/tminus]
    weeks
    0
    0
    days
    0
    0
    hours
    0
    0
    minutes
    0
    0
    seconds
    1
    0
    [tminus t="+10 secs" launchtarget="bothtml"]this is the bothtml target area[/tminus]
    weeks
    0
    0
    days
    0
    0
    hours
    0
    0
    minutes
    0
    0
    seconds
    1
    0