外掛說明
Expanding Archives adds a widget that shows your old posts in an expandable/collapsible format. Each post is categorized under its year and month, so you can expand all the posts in a given month and year.
This plugin comes with very minimal CSS styling so you can easily customize it to match your design.
JavaScript is required. No IE support.
螢幕擷圖
安裝方式
- Upload
expanding-archives
to the/wp-content/plugins/
directory - Activate the plugin through the ‘Plugins’ menu in WordPress
- Go to Appearance -> Widgets and drag the Expanding Archives widget into your sidebar.
常見問題集
-
How can I change the appearance of the widget?
-
The plugin does not come with a settings panel so you have to do this with your own custom CSS. Here are a few examples:
Change the year background colour:
.expanding-archives-title { background: #000000; }
Change the year font colour:
.expanding-archives-title a { color: #ffffff; }
-
How can I limit the results to a specific category?
-
By default, the widget includes posts in all categories. You can add the following code to a custom plugin or a child theme’s functions.php file to limit the results to posts in a specific category:
add_filter('expanding_archives_get_posts', function(array $args) { $args['cat'] = 2; // Replace with ID of your category. return $args; }); add_filter('expanding_archives_query', function(string $query) { $category = get_category(2); // Replace with ID of your category. if (! $category instanceof \WP_Term) { return $query; } global $wpdb; return " SELECT DISTINCT MONTH(post_date) AS month, YEAR(post_date) AS year, COUNT(id) as post_count FROM {$wpdb->posts} INNER JOIN {$wpdb->term_relationships} ON ({$wpdb->posts}.ID = {$wpdb->term_relationships}.object_id AND {$wpdb->term_relationships}.term_taxonomy_id = 2) WHERE post_status = 'publish' AND post_date <= now() AND post_type = 'post' GROUP BY month, year ORDER BY post_date DESC "; });
Be sure to set the ID of your category in both of the designated places (the examples use ID
2
).Note that the results may not update instantly, as the query to retrieve the date periods is cached for one day. To force the query to re-run, delete this transient:
expanding_archives_months
-
How can I specify a cut-off date?
-
By default, the widget will show a list of every year you’ve published posts.
If you have a lot of posts, you may wish to only show results from the last few years. This can be done with the following code snippet:
add_filter('expanding-archives/earliest-date', fn() => '-4 years');
You can change
-4 years
to any value supported by the PHP DateTime constructor. This can be a relative value (as shown above), or a specific date like:add_filter('expanding-archives/earliest-date', fn() => '2023-01-01');
Note that the results may not update instantly, as the query to retrieve the date periods is cached for one day. To force the query to re-run, delete this transient:
expanding_archives_months
使用者評論
參與者及開發者
變更記錄
2.1.0 – 23 March 2024
- New: Added support (via a filter) for specifying a cut-off date. See readme FAQ for details.
2.0.2 – 3 February, 2022
- Refactor: Posts are now retrieved via a custom REST API endpoint, instead of the default. This allows developers to more easily filter the query arguments for retrieving posts.
2.0.1 – 31 January, 2022
- Fix: Only showing a max of 10 posts in a month. Now it will show up to 100.
2.0 – 23 January, 2022
- Dev: Plugin has been rewritten (should be backwards compatible).
- Dev: Removed jQuery dependency (and dropped IE support).
- Dev: Remove Font Awesome spinner in favour of vanilla CSS.
- Fix: Invalid HTML when the site has no posts.
1.1.1
- Added filters that allow developers to easily modify the archive list.
1.1.0
- Added a new option in the widget where you can choose to auto expand the current month or not.
1.0.5
- Use transient for database query that fetches all the months.
1.0.4
- Added
xhrFields: { withCredentials: true }
to ajax call.
1.0.3
- Changed the month URLs to use get_month_link() instead of building them manually.
- Tested the plugin with WordPress 4.4 beta.
1.0.2
- Tested with WordPress version 4.3.
1.0.1
- Month names are now displayed using date_i18n() instead of date() so they will translate.
1.0.0
- Initial release.