Hello,
I was using your plugin for years, but your plugin suddenly generated a big CPU saturation, causing a lot of troubles on my website. I had to deactivate this plugin last month. I tried to debug this, but without success.
Here is the query that generated a CPU saturation
<?php $connected_films = new WP_Query( array(
'connected_type' => 'films_to_films',
'connected_items' => get_queried_object(),
'nopaging' => true,
'meta_key' => '_mf_annee_sortie',
'orderby' => 'meta_value_num',
'order' => 'ASC'
) );
if ( $connected_films->have_posts() ) { ?>
<h2>Les films et séries en lien avec <?php echo $format_wording[loeuvre].' '.get_the_title(); ?></h2>
<ul class="list-search-films">
<?php while ( $connected_films->have_posts() ) {
$connected_films->the_post();
$formats = get_the_terms($post->ID,'formats' );
$mf_annee = get_post_meta(get_the_ID(),'_mf_annee_sortie',true);
$title = '['. $formats[0]->name .']'. get_the_title().' ('.$mf_annee.')';
echo '<li>
<a href="'.get_permalink().'" class="mf-affiche">
<div class="films-list" style="background-image: url('.get_the_post_thumbnail_url(get_the_ID()).');"></div>
<span class="mf-title">'.$title.'</span></a></li>';
}
echo "</ul>";
}
wp_reset_postdata(); ?>
]]>
Since upgrading our database to mysql8, our website has suffered from enormous slowdowns relating to many-to-many connections between posts of the same type, with queries for connected posts taking minutes to complete (even for new posts)
Setting reciprocal = false
massively improves the performance, at the expense of a more complicated process for creating and displaying the connections
Is there any obvious reason why the performance would have degraded so much after the upgrade? is there something we can do with the query or schema to improve the performance? There are around 4400 rows in the wp_p2p table, and 18000 in the wp_posts table (only ~3500 published)
]]>with PHP 8.2, receiving the following deprecation warning:
Deprecated: Creation of dynamic property P2P_Box::$labels is deprecated in /wp-content/plugins/posts-to-posts/admin/box.php on line 28
On PHP 8.2.14 i get the following warning/error:
]]>Deprecated: Creation of dynamic property P2P_Side_User::$query_vars is deprecated in /var/www/html/wp-content/plugins/posts-to-posts/vendor/scribu/lib-posts-to-posts/side-user.php on line 8 Deprecated: WP_User_Query::__set(): The property
_p2p_capture
is not declared. Setting a dynamic property is deprecated since version 6.4.0! Instead, declare the property on the class.
“This plugin allows you to create many-to-many relationships between posts of any type: post, page, custom etc.”
Is there a way to allow the author/owner of the post you are connecting to, to approve/reject the relationship? I’m using it to connect two Geodirectory places.
If I allow users of one place to connect freely to other places, they could make unwanted associations. I could make the field admin only, but approve/reject or an other option to restrict associations by users would make it possible to give users this power.
Afaik, P2P allows connections both ways. So I maybe there is code I haven’t been able to find to tie the two together:
* Authors of Post 1-9 set the post (eg post 10) they want a connection with.
* Author of Post 10 sets the posts (eg post 1-9) it allows a connecton with/from.
* Display on post 10 only where both conditions are met.
I think I’ve seen something like this but I cannot find it.
Are there working solutions or is there code or plugins for this?
]]>In “Posts 2 Posts” version 1.7.2
with PHP 8.2.14
we see the following deprecated warning:
Deprecated: Creation of dynamic property P2P_Side_User::$query_vars is deprecated in /var/www/html/wp-content/plugins/posts-to-posts/vendor/scribu/lib-posts-to-posts/side-user.php on line 8
We also saw the following related topic:
https://www.ads-software.com/support/topic/php-8-2-deprecated-notices/
Perhaps version 1.7.2
does not yet solve all “Creation of dynamic property” problems?
Creation of dynamic property P2P_Connection_Type::$strategy is deprecated (wp-content/plugins/posts-to-posts/vendor/scribu/scb-framework/AdminPage.php:532)
Creation of dynamic property P2P_Tools_Page::$nonce is deprecated (wp-content/plugins/posts-to-posts/vendor/scribu/lib-posts-to-posts/connection-type-factory.php:49)
I’m assuming there are a lot of dynamic properties being created all over the place (IIRC from looking over the code a few years back).
]]>Love this plugin. I was wondering if there was a way that we can export/import relationships between the posts. I use WP ALL Export for all other I/E operations but Posts2Posts relationships don’t show up there. Is there a way around? Thanks
]]>Hello, I still use this plugin, is working for me, but there is not updated yet, I see that there answers for topics, but then, this plugin it will be updated?
]]>Since WordPress 6.1, it seems that it is no longer possible to remove user connections via editing posts via the WordPress admin dashboard.
The p2p_id
in the “Connected Users” admin meta box is empty.
I think this is related the the following changes since WordPress 6.1:
Also see the following code:
I think Posts 2 Posts joins in some extra columns (wp_p2p.*
), but that data is no longer available due to the additional caching mechanisms introduced since WordPress 6.1.
SELECT SQL_CALC_FOUND_ROWS wp_users.ID, wp_p2p.*
FROM wp_users
INNER JOIN wp_p2p
I was able to get around the caching mechanism somewhat by defining specific fields in the query:
<?php
add_action(
'pre_get_users',
function( $query ) {
if ( 'admin_box' === $query->get( 'p2p:context' ) ) {
$query->set( 'fields', [ 'id', 'display_name' ] );
}
}
);
That does solve the problem, but I have no idea if this has any further side effects. Can someone properly fix this problem and launch an update?
Defining the fields seems to work through the following lines of code:
The following topics are probably related:
]]>p2p_type( $var )->get_connected( get_the_ID() );
The property $connected->posts returns empty when called on taxonomy archives. Anybody knows why?
]]>
Hi
I working on a site where we have a custom post type, event
connected to user
Here is the connection.
p2p_register_connection_type(
[
'name' => self::get_connection(),
'from' => 'event',
'to' => 'user',
'fields' => [
'going' => [
'title' => __( 'Going', Plugin::get_text_domain() ),
'type' => 'checkbox',
// 'default_cb' => [ $this, 'set_default' ],
],
'not_going' => [
'title' => __( 'Not Going', Plugin::get_text_domain() ),
'type' => 'checkbox',
],
],
]
);
It has worked until we upgraded WordPress to 6.1 from 6.0.3. But now the checkboxes in backend is empty.
Screenshot: https://lars.friberg.dk/p2p.png
We add the data with some custom code in frontend, and it is saved in the database, but not shown in backend. I can add connections in backend, and the choice in backend is saved, but not shown.
I can’t remove or changes connections in backend.
]]>Hi
The issue: The order of users can’t be changed.
I open page editor, reorder users, publish the page, the page refreshes and users go back to their previous order.
I have updated the plugin. I have made sure that the ordering is allowed in functions.php :
function my_connection_types() {
p2p_register_connection_type( array(
‘name’ => ‘pages_to_users’,
‘from’ => ‘page’,
‘to’ => ‘user’,
‘sortable’ => true
) );
}
The users can be seen in the ‘Department team members’ section.
Is there anything else I could try to make reordering work?
]]>I need a way to count the connected posts on the fronend using php. That’s my only requirement. Other than that this plugin is working wonderfully!
]]>Hey – cool plugin.
I noticed the changelog here in WP Repo mentions the last update being about 6 months ago for Update to version 1.7 from GitHub
But when I check on GitHub, latest release tag there is from Oct 13, 2015 version 1.6.5
Where can we find the GitHub version 1.7.0?
I would like to fork it ??
Thank you so much for kicking this plugin back alive. It is a rock solid thing, that deserves so much more attention than it gets!
Hi,
Thank you for this great plugin!
I’m using your plugin to create relation between woocommerce orders. Then I display it in admin columns with admin column pro.
It works, but only display one order, even if I have many relations. And it displays the order date, I would like to see the client name instead.
Is it possible?
]]>Hi
I have been experiencing intermittent issues where generated mysql statements are causing performance problems. I think this is due to them deadlocking each other while waiting for the statements to complete.
The start of the statement looks like this:
SELECT
dmg_posts. * ,
dmg_p2p. * FROM
dmg_postsINNER JOIN
dmg_p2pWHERE ? = ? AND
dmg_posts.
post_type= ? AND (
dmg_posts.
post_status= ? OR
dmg_posts.
post_status= ? ) AND
dmg_posts.
post_status= ? AND (
dmg_p2p.
p2p_type= ? AND ( (
dmg_posts.
ID=
dmg_p2p.
p2p_toAND
dmg_p2p.
p2p_fromIN ( SELECT
dmg_posts.
IDFROM
dmg_postsWHERE ? = ? AND
dmg_posts.
IDIN (...) AND
dmg_posts.
post_type= ? AND (
dmg_posts.
post_stat`
Please help me solve this. I have this issue from long time.
]]>The following deprecation notices are available when using this plugin with PHP8.0, from an underlying dependency.
Deprecated: Required parameter $nonce follows optional parameter $formdata in <b>/application/www/wp-content/plugins/posts-to-posts/vendor/scribu/scb-framework/Forms.php line 65
Deprecated: Required parameter $args follows optional parameter $file in <b>/application/www/wp-content/plugins/posts-to-posts/vendor/scribu/scb-framework/Cron.php line 24
1. https://github.com/scribu/wp-scb-framework/blob/master/Cron.php#L24
2. https://github.com/scribu/wp-scb-framework/blob/master/Forms.php#L65
Hi there,
Thanks for the wonderful plugin! We are seeing an error thrown when performing certain actions in the dashboard:
Error Details
=============
An error of type E_ERROR was caused in line 50 of the file /wp-content/plugins/posts-to-posts/admin/dropdown.php. Error message: Uncaught Error: Call to undefined function each() in /wp-content/plugins/posts-to-posts/admin/dropdown.php:50
Stack trace:
#0 /wp-content/plugins/posts-to-posts/admin/dropdown-post.php(14): P2P_Dropdown::get_qv()
#1 /wp-includes/class-wp-hook.php(307): P2P_Dropdown_Post::massage_query()
#2 /wp-includes/plugin.php(191): WP_Hook->apply_filters()
#3 /wp-includes/class-wp.php(389): apply_filters()
#4 /wp-includes/class-wp.php(770): WP->parse_request()
#5 /wp-includes/functions.php(1330): WP->main()
#6 /wp-admin/includes/post.php(1239): wp()
#7 /wp-admin/includes/class-wp-posts-list-table.php(166): wp_edit_posts_query()
#8 /wp-admin/edit.php(225): WP_Posts_List_Table->prepare_items()
#9 {main}
thrown
Please advise ??
]]>Hello everybody,
I have been using P2P for many years in my personal website and sometimes I am really scared about the possibility that one day it will become useless… So I prefer to anticipate and do something !
Can you tell me if it is possible to export the relations we made with P2P and use them with another plugin ? If that is possible, which plugin could it be ?
Regards, Guillermo
]]>Hello,
Our client is reporting a bug that they have when trying to connect a post to another. The site has two custom post types, ‘artist’ and ‘artwork’, and we use Posts 2 Posts to connect one to the other.
When creating a new Artwork post, when they try to select an artist, they get a popup saying the following: Cardinality problem (opposite). At which point they say they publish the Artwork and it ends up being associated with the last Artist created, instead of the one they selected.
But here’s the kicker: This problem doesn’t occur on our side (I tried, as well as a coworker).
We tried what they were doing step by step in order to at least see the bug with our own eyes, but it never occurs. We tried with our WordPress account, we tried with theirs, we tried with multiple browsers, nothing.
Also of note, the website is installed on a multisite so as to manage languages with Multisite Language Switcher, and they say the problem occurs only on one language. However, we’ve tried the whole procedure on that very language on our side, and nothing.
So, at this point we were wondering if we could at least get a hint as to what could make this bug happen on their side, since it’s very difficult to fix a bug we can’t see. Do you guys have any ideas?
]]>When upgrading the project to php8 we get an error:
Fatal error: Uncaught ValueError: Unknown format specifier “i” in /Users/roelhugens/Development/domains/flash/web/app/plugins/posts-to-posts/vendor/mustache/mustache/src/Mustache/Engine.php on line 606
It can be fixed by changing this specifier from %i to %s
Can this be committed in a tagged bugfix release?
I see multiple notices in post edit screen
WP 5.7.2, lastest p2p plugin.
The number of errors in not equal to numbers of conenctions the post has. For example it has like 30+ connections and 4 notices.
Notice: Trying to access array offset on value of type null in ..z/wp-content/plugins/posts-to-posts/vendor/mustache/mustache/src/Mustache/Parser.php on line 278
Sure the WP_DEBUG on
]]>Hi
After upgrade to PHP8 i get number of errors when debug is true.
Can it be fixed?
Deprecated: Required parameter $nonce follows optional parameter $formdata in /home/user/sample-site.com/wp-content/plugins/posts-to-posts/vendor/scribu/scb-framework/Forms.php on line 65
Deprecated: Required parameter $args follows optional parameter $file in /home/user/sample-site.com/wp-content/plugins/posts-to-posts/vendor/scribu/scb-framework/Cron.php on line 24
Warning: Cannot modify header information - headers already sent by (output started at /home/user/sample-site.com/wp-content/plugins/posts-to-posts/vendor/scribu/scb-framework/Forms.php:65) in /home/user/sample-site.com/wp-includes/functions.php on line 6362
Warning: Cannot modify header information - headers already sent by (output started at /home/user/sample-site.com/wp-content/plugins/posts-to-posts/vendor/scribu/scb-framework/Forms.php:65) in /home/user/sample-site.com/wp-admin/includes/misc.php on line 1310
Warning: Cannot modify header information - headers already sent by (output started at /home/user/sample-site.com/wp-content/plugins/posts-to-posts/vendor/scribu/scb-framework/Forms.php:65) in /home/user/sample-site.com/wp-admin/admin-header.php on line 9
Thank you
]]>Hi, I’m looking for support on this plugin. I have an old website that had a posts to partners (CPT) connection. And now after we upgraded the website, posts have been divided into 3 CPT posts. And I want those linked back to the partners CPT.
I tried looking for any paid or premium support for this plugin and couldn’t find any. This is important and I’m in a rush to get this fixed.
I wonder if there’s anyone available to offer paid support.
Thanks,
-Emad
I am not sure what is the right repo now that there is a new company for maintenance.
On scbMultipleChoiceField
Forms.php on scb-framework the validate method will remove all the checks (except one) if there are multiple checkboxes checked.
Hi there,
I can see the plugin had an update to 1.6.6 3 months ago, but I cannot see this on the referenced github repo (https://github.com/scribu/wp-posts-to-posts).
Is there a new base repo, where we can actively help develop, submit Pull Requests etc?
I have not used post2posts for years, but liked it, when I had to use it. Would be great to keep it working.
]]>On three unrelated sites we’re starting to see Trying to access array offset on value of type null
from Mustache. If you look at checkIfTokenIsAllowedInParent
in
Mustache/Parser.php
around line 276 you’ll see that the signature allows $parent
to be either an array or null, however the code itself doesn’t check for null.
This was fixed in Mustache with this commit, and it fixes our issues on all sites so far:
https://github.com/bobthecow/mustache.php/commit/6d28b0b28d941ac766092b13f65e56d63b782154
I’d be glad to send a PR for this however I’m not sure how you want to handle third-party code
]]>I installed the update and it crashed my site. I had to replace the new plugin with the old version to get my site working again. But I can no longer create connections. If I try it scrolls to the message saying I must update the plugin. Can’t do anything with my site now.
]]>There is a extra comma in the composer.json file shipped with version 1.6.6 of your plugin:
"require": {
"composer/installers": "~1.0",
Composer doesn’t like the syntax error.
Would it be possible to fix this please? I would send you a pull request but couldn’t find 1.6.6 on github. Has the repo moved?
]]>