Opened 3 years ago
Last modified 20 months ago
#57622 new enhancement
Add filter to get_page_by_path
| Reported by: |
|
Owned by: | |
|---|---|---|---|
| Milestone: | Awaiting Review | Priority: | normal |
| Severity: | normal | Version: | |
| Component: | Posts, Post Types | Keywords: | has-patch |
| Focuses: | Cc: |
Description
Everything looks like that use WP_Query in get_page_by_path will be reverted 56689.
Therefore, I have an idea to add a filter that allows ability to control results.
Example:
apply_filters('get_page_by_path', $found_page, $page_path, $output_type, $post_type)
Attachments (2)
Change History (5)
This ticket was mentioned in PR #3983 on WordPress/wordpress-develop by @uzumymw.
3 years ago
#1
- Keywords has-patch added
This ticket was mentioned in PR #7060 on WordPress/wordpress-develop by xipasduarte.
20 months ago
#2
Adds a couple of hooks to filter values inside the function get_page_by_path.
page_by_path_cache_keyfilters the value for the cache key.page_by_path_idfilters the found ID.
Trac ticket: core.trac.wordpress.org/ticket/57622
#3
@
20 months ago
Hello @uzumymw. I've taken a stab at this and provided a different version with a couple of hooks. I found your ticket based on a need I encountered where I wanted to keep the same post_name for two posts, but differentiate then by another property (language, for example). Due to the usage of this function we were not able to make it work without a bunch of hooks and corrections to the returning ID.
The hooks that I propose are:
page_by_path_idfilters the found ID to something that the user believes is the desired result.page_by_path_cache_keyadds the ability to control the cache key, which allows for scenarios where the same perceived path is actually a reference for two, or more, posts, based on something else.
I didn't add the $last_changed value, because its current effect will bust all caches when the 'posts' cache group is updated. I feel we might want to keep this in the resulting value, even after filtering, so as to prevent caching issues, but I'd differ to others better equipped to answer this.
Trac ticket: https://core.trac.wordpress.org/ticket/57622