Problem: I am using the Connect Existing dialog to connect existing posts in the post relationship panel of the post editing screen. I have several posts with similar names, so I would like to filter the post titles somehow to include additional identifying information.
Solution: Use a custom code snippet hooked into posts_results to filter these titles:
// Toolset Support Reference: https://toolset.com/forums/topic/filter-to-modify-the-options-within-the-connect-existing-dialog/
// adjust post titles in Connect Existing dialog of relationship editor panel
function ts_filter_connect_existing_titles( $posts, $query ){
$post_types = ['band', 'event']; // slugs of post types
$rel_slugs = ['band-event']; // slugs of post relationships
//We only want to run this if User is searching for related content for specific relationships using the Connect Existing dialog
if ( defined('DOING_AJAX')
&& isset($_REQUEST['action'])
&& $_REQUEST['action']=='types_related_content_action'
&& isset($_REQUEST['relationship_slug'])
&& in_array($_REQUEST['relationship_slug'], $rel_slugs)
&& isset($query->query['post_type'][0])
&& in_array($query->query['post_type'][0], $post_types)
) {
foreach($posts as $post){
// modify the post title as desired here
$post->post_title = 'Test-' . $post->post_title;
}
}
return $posts;
}
add_action( 'posts_results', 'ts_filter_connect_existing_titles', 99, 2 );
You can adjust the post type slugs band and event, as well as the post relationship slug band-event to match your content. This code will manipulate the titles of posts in any of the post types included in the $post_types array, in the Connect Existing dialog for any of the post relationships included in the $rel_slugs array. Modify the post titles however you'd like in the foreach loop. Note that this does not extend search capabilities.
Relevant Documentation:
https://developer.wordpress.org/reference/hooks/posts_results/
This is the technical support forum for Toolset - a suite of plugins for developing WordPress sites without writing PHP.
Everyone can read this forum, but only Toolset clients can post in it. Toolset support works 6 days per week, 19 hours per day.
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
| 8:00 – 12:00 | 8:00 – 12:00 | 8:00 – 12:00 | 8:00 – 12:00 | 8:00 – 12:00 | - | - |
| 13:00 – 17:00 | 13:00 – 17:00 | 13:00 – 17:00 | 13:00 – 17:00 | 13:00 – 17:00 | - | - |
Supporter timezone: America/New_York (GMT-04:00)
This topic contains 2 replies, has 2 voices.
Last updated by 4 years, 3 months ago.
Assisted by: Christian Cox.