Skip to content

Commit 2f124f4

Browse files
committed
Merge branch 'develop'
2 parents 33ae3b0 + 586e803 commit 2f124f4

File tree

173 files changed

+52408
-40286
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

173 files changed

+52408
-40286
lines changed

.github/workflows/cs-lint.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ jobs:
4343
# Validate the composer.json file.
4444
# @link https://getcomposer.org/doc/03-cli.md#validate
4545
- name: Validate Composer installation
46-
run: composer validate --no-check-all
46+
run: composer validate --no-check-all --strict
4747

4848
# Install dependencies and handle caching in one go.
4949
# @link https://github.com/marketplace/actions/install-composer-dependencies

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1+
/.phpunit.cache/
12
/node_modules/
23
/vendor/
34
/.phpcs.xml
4-
/.phpunit.result.cache
55
/composer.lock
66
/phpcs.xml
77
/phpunit.xml

CHANGELOG.md

+35-8
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,32 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [3.6.0] - 2024-04-22
9+
10+
### Added
11+
* Blocks for Co-Authors #997
12+
13+
### Fixed
14+
* Improve alignment in author-selection component #990
15+
* Fix admin notice positions #1002
16+
* UI: Add capability check to Add New button #1003
17+
* i18n: set script translations and refresh language files #1007
18+
19+
### Maintenance
20+
* Docs: Consolidate and refresh README.md #992
21+
* Refresh package.json #993
22+
* NPM: Add version-bump-prompt #994
23+
* Fix/general code tidy #995
24+
* Composer: Use 4-space tab indentation #999
25+
* Improve tests structure #1000
26+
* Extract iterator class from template-tags.php #1005
27+
* Add supported_post_types() method #1006
28+
* Tests improvements #1008
29+
* Bump postcss from 8.4.19 to 8.4.31 #1009
30+
* Create co-authors-plus-da_DK.po #1013
31+
* Increase minimum supported PHP version to 7.4 #954
32+
* Increase minimum supported WordPress version to 5.7 #955
33+
834
## [3.5.15] - 2023-08-28
935

1036
### Fixed
@@ -20,7 +46,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2046
* i18n: Add text domain header #984
2147

2248
### Maintenance
23-
* CI: Update integration tests environnments #979
49+
* CI: Update integration tests environments #979
2450
* CLI: Add Behat functional tests #980
2551
* Create LICENSE file #985
2652
* Refresh plugin headers #986
@@ -148,7 +174,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
148174
* Adjust regex on posts_where_filter to be less greedy #686
149175
* Update deprecated GitHub hosted runner #808
150176
* Replace deprecated jQuery shorthand methods #812
151-
* Switch guest author metabox to aside context #746
177+
* Switch guest author meta box to aside context #746
152178

153179
**3.4.8 (June 15, 2021)**
154180
* Fix AJAX author autocomplete when no author to post in author selector #803
@@ -203,7 +229,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
203229
* New filter `get_avatar_url()` to show avatar in JS selection #621
204230
* New parameter in `coauthors_wp_list_authors()` to only query authors with posts #496
205231
* Add internationalization support to title and name in author archives #516
206-
* Add safelist to skip irrelevant capabilities during permission checks #543
232+
* Add safe list to skip irrelevant capabilities during permission checks #543
207233
* Add helper function `get_guest_author_post_count()` #605
208234
* Add parameter for outputting HTML classes in `coauthors_get_avatar()` template tag #610
209235
* Add `--append_coauthors` flag to synopsis of CLI `assign-coauthors` #600
@@ -328,7 +354,7 @@ Props to the many people who helped make this release possible: [catchmyfame](ht
328354

329355
**3.0.5 (Feb. 18, 2013)**
330356
* New filter `coauthors_search_authors_get_terms_args` allows you to increase the number of matches returned with AJAX co-author selection
331-
* Bug fix: If there isn't an author term yet for a co-author, avoid an erronous join that caused duplicate posts to appear.
357+
* Bug fix: If there isn't an author term yet for a co-author, avoid an erroneous join that caused duplicate posts to appear.
332358

333359
**3.0.4 (Jan. 6, 2013)** =
334360
* Support for automatically adding co-authors to your feeds. Props [cfg](https://github.com/cfg).
@@ -351,15 +377,15 @@ Props to the many people who helped make this release possible: [catchmyfame](ht
351377
* Minor UI enhancements for guest authors
352378

353379
**3.0 (Nov. 12, 2012)**
354-
* Create guest author profiles for bylines you'd like to assign without creating WordPress user accounts. Guest authors can have all of the same fields as normal users including display name, biography, and avatars.
380+
* Create guest author profiles for bylines you'd like to assign without creating WordPress user accounts. Guest authors can have all the same fields as normal users including display name, biography, and avatars.
355381
* Support for non-Latin characters in usernames and guest author names
356382
* wp-cli subcommands for creating, assigning, and reassigning co-authors
357383
* For themes using core template tags like `the_author()` or `the_author_posts_link()`, you enable Co-Authors Plus support with a simple filter
358384
* New author terms are now prefixed with `cap-` to avoid collisions with global scope
359385
* Bug fix: Apply query filters to only `post_types` registered with the taxonomy. Props [Tom Ransom](https://github.com/1bigidea)
360386
* Filter `coauthors_posts_link_single()` with `coauthors_posts_link`. Also adds `rel="author"`. Props [Amit Sannad](https://github.com/asannad) and [Gabriel Koen](https://github.com/mintindeed)
361387
* Filter for the context and priorities of the Co-Authors meta boxes. Props [Tomáš Kapler](https://github.com/tkapler)
362-
* Renamed the post meta box for selecting authors so it applies to many post types. Props [John Blackbourn](https://github.com/johnbillion)
388+
* Renamed the post meta box for selecting authors, so it applies to many post types. Props [John Blackbourn](https://github.com/johnbillion)
363389

364390
**2.6.4 (May 7, 2012)**
365391
* Bug fix: Properly filter the user query so users can AJAX search against the display name field again
@@ -388,7 +414,7 @@ Props to the many people who helped make this release possible: [catchmyfame](ht
388414
**2.6 (Dec. 22, 2011)**
389415
* Sortable authors: Drag and drop the order of the authors as you'd like them to appear ([props kingkool68](http://profiles.wordpress.org/users/kingkool68/))
390416
* Search for authors by display name (instead of nicename which was essentially the same as user_login)
391-
* Option to remove the first author when there are two or more so it's less confusing
417+
* Option to remove the first author when there are two or more, so it's less confusing
392418
* Bumped requirements to WordPress 3.1
393419
* Bug fix: Update the published post count for each user more reliably
394420

@@ -425,7 +451,7 @@ Props to the many people who helped make this release possible: [catchmyfame](ht
425451
* All authors of a post are now notified on a new comment
426452
* Various javascript enhancements
427453
* New option to allow subscribers to be added as authors
428-
* All Authors can edit they posts of which they are co-authors
454+
* All Authors can edit the posts of which they are co-authors
429455
* FIX: Issues with `wp_coauthors_list` function
430456
* FIX: Issues with coauthored posts not showing up on author archives
431457

@@ -462,6 +488,7 @@ Props to the many people who helped make this release possible: [catchmyfame](ht
462488
**1.1.0 (Apr. 14, 2009)**
463489
* Initial beta release.
464490

491+
[3.6.0]: https://github.com/automattic/co-authors-plus/compare/3.5.15...3.6.0
465492
[3.5.15]: https://github.com/automattic/co-authors-plus/compare/3.5.14...3.5.15
466493
[3.5.14]: https://github.com/automattic/co-authors-plus/compare/3.5.13...3.5.14
467494
[3.5.13]: https://github.com/automattic/co-authors-plus/compare/3.5.12...3.5.13

CONTRIBUTING.md

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Contributing to Co-Authors Plus
2+
3+
## Pull Requests
4+
5+
Please make pull requests against the `develop` branch.
6+
7+
Ideally include tests.
8+
9+
## Terminology: co-author vs coauthor
10+
11+
If talking about co-authors in a documentation, DocBlock, comment, or user-facing string, please include the hyphen.
12+
13+
Variables, constants, class, trait, interface, function, method, hook, and other programmatic names can all use no-hyphen.

README.md

+130-9
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,25 @@
11
# Co-Authors Plus
22

3-
* Contributors: batmoo, danielbachhuber, automattic, GaryJ
4-
* Tags: authors, users, multiple authors, co-authors, multi-author, publishing
5-
* Requires at least: 4.1
6-
* Tested up to: 6.3
7-
* Stable tag: 3.5.15
8-
* Requires PHP: 5.6
9-
* License: GPLv2 or later
10-
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
3+
Stable tag: 3.6.0
4+
Requires at least: 4.1
5+
Tested up to: 6.5
6+
Requires PHP: 5.6
7+
License: GPLv2 or later
8+
License URI: https://www.gnu.org/licenses/gpl-2.0.html
9+
Tags: authors, users, multiple authors, co-authors, multi-author, publishing
10+
Contributors: batmoo, danielbachhuber, automattic, GaryJ
1111

1212
Assign multiple bylines to posts, pages, and custom post types with a search-as-you-type input box.
1313

14-
## Usage
14+
## Description
15+
16+
Assign multiple bylines to posts, pages, and custom post types via a search-as-you-type input box. Co-authored posts appear on a co-author's archive page and in their feed. Co-authors may edit the posts they are associated with, and co-authors who are contributors may only edit posts if they have not been published (as is core behavior).
17+
18+
Add writers as bylines without creating WordPress user accounts. Simply [create a guest author profile](https://github.com/Automattic/Co-Authors-Plus/wiki/Creating-and-editing-guest-authors) for the writer and assign the byline as you normally would.
19+
20+
On the frontend, use the [Co-Authors Plus template tags](https://github.com/Automattic/Co-Authors-Plus/wiki/Template-tags) to list co-authors anywhere you'd normally list the author.
21+
22+
This plugin is an almost complete rewrite of the [Co-Authors](https://wordpress.org/plugins/co-authors/) plugin originally developed by Weston Ruter (2007). The original plugin was inspired by the '[Multiple Authors](https://txfx.net/2005/08/16/new-plugin-multiple-authors/)' plugin by Mark Jaquith (2005).
1523

1624
Refer to our [wiki](https://github.com/Automattic/Co-Authors-Plus/wiki) for detailed documentation.
1725

@@ -28,6 +36,119 @@ Refer to our [wiki](https://github.com/Automattic/Co-Authors-Plus/wiki) for deta
2836
1. Multiple authors can be added to a Post, Page, or Custom Post Type using an auto-complete interface.
2937
2. Guest authors allow you to assign bylines without creating WordPress user accounts. You can also override existing WordPress account meta by mapping a guest author to a WordPress user.
3038

39+
## Frequently Asked Questions
40+
41+
### How do I add Co-Authors Plus support to my theme?
42+
43+
If you've just installed Co-Authors Plus, you might notice that the bylines are being added in the backend but aren't appearing on the front end. You'll need to [add the template tags to your theme](https://github.com/Automattic/Co-Authors-Plus/wiki/Template-tags) before the bylines will appear.
44+
45+
### What happens to posts and pages when I delete a user assigned to a post or page as a co-author?
46+
47+
When a user is deleted from WordPress, they will be removed from all posts for which they are co-authors. If you reassign their posts to another user, that user will be the co-author instead.
48+
49+
### Can I use Co-Authors Plus with WordPress multisite?
50+
51+
Yes! Co-Authors Plus can be activated on a site-by-site basis or network-activated. If you create guest authors, however, those guest authors will exist on a site-by-site basis.
52+
53+
### Who needs permission to do what?
54+
55+
A WordPress user will need the `edit_others_posts` capability to assign co-authors to posts. This is typically granted to the Editor role but can be altered with the `coauthors_plus_edit_authors` filter.
56+
57+
A WordPress user will need the `list_users` capability to create new guest author profiles. This is typically granted to the Administrator role but can be altered with the `coauthors_guest_author_manage_cap` filter.
58+
59+
### Can I easily create a list of all co-authors?
60+
61+
Yes! A template tag called `coauthors_wp_list_authors()` accepts many of the same arguments as `wp_list_authors()`. Look in `template-tags.php` for more details.
62+
63+
### Can I disable Guest Authors?
64+
65+
Yes! Guest authors can be disabled entirely through a filter. Having the following line load on `init` will do the trick:
66+
`add_filter( 'coauthors_guest_authors_enabled', '__return_false' )`
67+
3168
## Change Log
3269

3370
[View the change log](https://github.com/Automattic/Co-Authors-Plus/blob/master/CHANGELOG.md).
71+
72+
## Blocks
73+
74+
### Co-Authors
75+
76+
Use this block to create a repeating template that displays the co-authors of a post. By default it contains the Co-Author Name block, but you can add any other block you want to the template. If you choose another Co-Author block like avatar, biography or image it will automatically be supplied the author `context` that it needs. This works similarly to creating a Post Template in a Query Loop block.
77+
78+
The Co-Authors Block supports two layouts:
79+
80+
#### Inline Layout
81+
82+
Use the inline layout to display co-authors in a list on a single wrapping line.
83+
84+
You can control the characters displayed before, between and after co-authors in the list using the block settings, or change the defaults using the following server-side filters:
85+
86+
```
87+
coauthors_default_before
88+
coauthors_default_between
89+
coauthors_default_between_last
90+
coauthors_default_after
91+
```
92+
93+
#### Block Layout
94+
95+
Use the block layout to display co-authors in a vertical stack. While using the block layout you can use block spacing settings to control the vertical space between co-authors.
96+
97+
Then you can create your own layout using blocks like group, row or stack and it will be applied to each co-author, similar to applying a layout to each post in a query loop.
98+
99+
### Co-Author Name
100+
101+
This block displays a co-author's `Display Name` and optionally turns it into a link to their author archive.
102+
103+
Using the block's advanced settings you can select which HTML element is used to output the name. This is useful in contexts such as an author archive where you might want their name to be a heading.
104+
105+
### Co-Author Avatar
106+
107+
Like the post author avatar, or comment author avatar, this block displays a small scale square image of a co-author and utilizes the Gravatar default avatars as configured in your site's discussion options.
108+
109+
To customize the available sizes, use the [rest_avatar_sizes](https://developer.wordpress.org/reference/hooks/rest_avatar_sizes/) filter.
110+
111+
### Co-Author Biography
112+
113+
This block outputs the biographical information for a co-author based on either their user or guest author data.
114+
115+
The content is wrapped in paragraph elements using `wpautop` and is escaped using `wp_kses_post`.
116+
117+
### Co-Author Featured Image
118+
119+
This block requires the use of Guest Authors. Because guest author avatars are uploaded to the WordPress media library, there are more options for displaying these images.
120+
121+
This block utilizes the image sizes configured in your theme and your site's media settings to present a guest author's avatar at a larger scale or higher resolution. It does not support Gravatars.
122+
123+
## Block Context
124+
125+
### Post, Page, Query Loop
126+
127+
By default, all blocks receive the post context. The job of the Co-Authors Block is to use this context to find the relevant authors and provide context to its inner blocks.
128+
129+
### Author Archive
130+
131+
If you want to display data about the author on their own archive, use the individual co-author blocks directly without wrapping them in the Co-Authors Block. During requests for an author archive the correct context is derived from the `author_name` query variable and provided to all blocks that declare their use of the context `co-authors-plus/author`.
132+
133+
### Extending
134+
135+
If you make a custom block and want to use the author context, add `co-authors-plus/author` to the `usesContext` property in your block.json file.
136+
137+
Example:
138+
```json
139+
{
140+
"usesContext": ["co-authors-plus/author"]
141+
}
142+
```
143+
144+
## Block Example Data
145+
146+
When working with Full Site Editing, or in the post editor before the authors are loaded, example data is used. The example data provided with the co-author blocks resembles a response to the `/coauthors/v1/coauthors/:user-nicename` REST API endpoint.
147+
148+
### Extending
149+
150+
If you have written a plugin that modifies the REST API response, you can similarly modify the example data either on the server-side using the filter `coauthors_blocks_store_data` or the client-side using the filter `co-authors-plus.author-placeholder`.
151+
152+
## Block Non-support
153+
154+
To declare a lack of support for Co-Author Plus blocks on your site, use the filter `coauthors_plus_support_blocks` to return `false`.

build/blocks-store/index.asset.php

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<?php return array('dependencies' => array('wp-data', 'wp-hooks'), 'version' => '82f1cda3f1d3fbb0136c');

build/blocks-store/index.js

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
{
2+
"$schema": "https://schemas.wp.org/trunk/block.json",
3+
"apiVersion": 3,
4+
"name": "co-authors-plus/avatar",
5+
"version": "1.0.0",
6+
"title": "Co-Author Avatar",
7+
"category": "theme",
8+
"description": "Displays a small scale version of a co-author's avatar. Utilizes fallbacks from Gravatar so everyone has an avatar.",
9+
"keywords": [
10+
"coauthors"
11+
],
12+
"supports": {
13+
"html": false,
14+
"__experimentalBorder": {
15+
"color": true,
16+
"radius": true,
17+
"width": true,
18+
"__experimentalSelector": "img, .block-editor-media-placeholder",
19+
"__experimentalSkipSerialization": true,
20+
"__experimentalDefaultControls": {
21+
"color": false,
22+
"radius": false,
23+
"width": false
24+
}
25+
},
26+
"spacing": {
27+
"margin": true,
28+
"padding": true,
29+
"__experimentalDefaultControls": {
30+
"margin": false,
31+
"padding": false
32+
}
33+
}
34+
},
35+
"usesContext": [
36+
"co-authors-plus/author",
37+
"co-authors-plus/layout"
38+
],
39+
"attributes": {
40+
"size": {
41+
"type": "number",
42+
"default": 24
43+
},
44+
"isLink": {
45+
"type": "boolean",
46+
"default": false
47+
},
48+
"rel": {
49+
"type": "string"
50+
},
51+
"verticalAlign": {
52+
"type": "string"
53+
},
54+
"align": {
55+
"type": "string"
56+
}
57+
},
58+
"textdomain": "co-authors-plus",
59+
"editorScript": "file:./index.js",
60+
"style": "file:./style-index.css"
61+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<?php return array('dependencies' => array('wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n', 'wp-primitives'), 'version' => 'b6b841ac8f86f7358245');

0 commit comments

Comments
 (0)