Opened 8 years ago
Last modified 8 months ago
#38197 assigned enhancement
Update Pingback function To Add Return
Reported by: | dshanske | Owned by: | pbearne |
---|---|---|---|
Milestone: | Future Release | Priority: | normal |
Severity: | normal | Version: | |
Component: | Pings/Trackbacks | Keywords: | good-first-bug has-patch has-unit-tests |
Focuses: | performance | Cc: |
Description (last modified by )
Related to #36824.
Updated to reflect focus on the return issue.
In #36824, the proposal was to improve performance of the do_all_pings function. Part of this involves the fact that if a pending trackback URL is sent a pingback successfully, it should not also send a trackback.
The function should also optionally return which URLs were successfully pinged or a WP_Error object in the event the sending fails, etc.
This would change the signature of the function but would allow for debugging, response to errors, as well as assist in optimizing the do_all_pings function.
The original proposal was to deprecate pingback because it includes $content, a parameter better retrieved from the post itself for purposes of integrity. However, that can be addressed in other ways.
Attachments (2)
Change History (40)
#1
@
8 years ago
- Description modified (diff)
- Summary changed from Deprecate and Replace Pingback() Function to Update Pingback function To Add Return
#4
@
8 years ago
You are right, handling this is difficult.
My suggestion is to start by splitting the code that sends a single ping based on a URL into a new function with a return. This will get a single true/false to build an array. We can also add split the function to find the content in a content block.
That would allow the existing function to call them but future changes in do_all_pings to call each piece independently.
In the meantime, pingback can return true if all successful, which should shutdown Trackbacks for the post_id.
#5
@
7 years ago
The patch attached returns an array with the $pagelinkedto
as the key and the result of WP_HTTP_IXR_Client::query()
as the key. Not sure if this is a sufficient solution for your needs.
#6
@
7 years ago
- Keywords has-patch added; needs-patch removed
- Milestone changed from Awaiting Review to 4.9
Needs a second opinion, but I think this is acceptable.
This ticket was mentioned in Slack in #core by jeffpaul. View the logs.
7 years ago
This ticket was mentioned in Slack in #core by jeffpaul. View the logs.
7 years ago
#10
@
7 years ago
- Milestone changed from 4.9 to Future Release
Punting this to Future Release per the 4.9 bug scrub earlier today.
#12
@
7 years ago
- Owner set to nathanatmoz
- Status changed from new to assigned
Assigning to mark the good-first-bug
as "claimed".
@dshanske Can you please have a look a the patch and provide any feedback @NathanAtmoz might need to keep this ticket moving?
#13
@
7 years ago
@DrewAPicture I do not see anything wrong with the patch. I asked for a second opinion at the time. It returns an array of statuses, so someone can evaluate whether there was an issue with any of them.
This ticket was mentioned in Slack in #core by danieltj. View the logs.
7 years ago
This ticket was mentioned in Slack in #core by audrasjb. View the logs.
7 years ago
#18
@
7 years ago
- Keywords needs-refresh added
The change needs to be documented in the function's DocBlock.
This ticket was mentioned in Slack in #core by desrosj. View the logs.
7 years ago
#23
@
7 years ago
@desrosj I don't think the signature has changed. The arguments passed are the same. There was no return, now there is.
I think if functionality changes in a non-backward compatible way, that is a signature change. If you add a parameter or return one, the original signature is still maintained.
#24
@
7 years ago
It used to return null which is falsey, now it returns an array which truthy. I'd err on the safe side as well.
#25
@
7 years ago
- Milestone changed from 4.9.6 to 5.0
I am going to move this to 5.0 because of the potential for issues with the change in returned values. If a committer is confident in this, it can be moved back in.
#27
@
6 years ago
- Keywords needs-refresh added; dev-feedback removed
- Milestone changed from 5.1 to Future Release
It seems like it would be more useful for the array elements to be true
or a WP_Error
, with the error extracted from $client->error
.
Also, $ping_status
doesn't contain an error if discover_pingback_server_uri()
is unable to discover the URI.
This ticket was mentioned in Slack in #core by sergey. View the logs.
3 years ago
This ticket was mentioned in PR #2259 on WordPress/wordpress-develop by ironprogrammer.
3 years ago
#29
- Keywords needs-refresh removed
Refresh on Trac 38197. Updates pingback
to return an array of statuses, indexed by the links pinged.
Trac ticket: https://core.trac.wordpress.org/ticket/38197
#30
follow-up:
↓ 33
@
3 years ago
- Keywords needs-unit-tests added
PR 2259 refreshes the patch for suggested 6.0 release. This ticket was covered by @SergeyBiryukov during a new contributor meeting in Slack.
This PR will include unit tests for pingback
, but their completion is blocked by #30580. The issue is that HTML entities in the local test pingback URLs are stripped by wp_extract_urls
. I'll shift to the other ticket before being able to wrap this up.
#33
in reply to:
↑ 30
@
3 years ago
Replying to ironprogrammer:
This PR will include unit tests for
pingback
, but their completion is blocked by #30580. The issue is that HTML entities in the local test pingback URLs are stripped bywp_extract_urls
. I'll shift to the other ticket before being able to wrap this up.
The wp_extract_urls()
changes were committed a few days ago so you should be unblocked now.
This ticket was mentioned in Slack in #core by chaion07. View the logs.
3 years ago
#35
@
3 years ago
- Milestone changed from 6.0 to Future Release
Thanks @dshanske for reporting this. We recently reviewed this ticket during a recent bug-scrub session. Noting that Beta 01 coming into effect by the end of today, the ticket is still awaiting unit tests and some additional work. Based on the feedback from the team we are updating the milestone of the ticket.
Props to @peterwilsoncc
Cheers!
This ticket was mentioned in PR #3379 on WordPress/wordpress-develop by CrochetFeve0251.
2 years ago
#36
- Keywords has-unit-tests added; needs-unit-tests removed
Added unit tests for pingback function
Trac ticket: 38197
Hello !
I'm actually trying to make a patch for that ticket, but can't find a clean way to handle this. The
pingback
function can ping multiple URLs in one call, how the return value can be consistent with that :true
/WP_Error
if URL was pinged successfully or not ?WP_Error
if at leat one failed ?