Update: Issue resolved — Satenet theme conflict identified
Hi Takayuki Miyoshi @takayukister ,
Thank you for your response and suggestions.
I can now confirm that the issue has been resolved. After extensive debugging using WP-CLI, I identified the exact cause.
The problem was a compatibility conflict between Contact Form 7 6.2.1 and the Satenet WordPress theme by Zozothemes.
Root cause:
The Satenet theme contains two functions in:
wp-content/themes/satenet/inc/template-functions.php
satenet_search_post() — line 114
satenet_search_page() — line 122
These functions are attached to pre_get_posts and modify the post type whenever $query->is_search is true.
Since Contact Form 7 6.2 includes the s parameter in its administrative form-list query, the theme was overriding wpcf7_contact_form with the regular WordPress post type.
This explains the exact symptoms:
- The admin list displayed 8 empty rows.
- Form titles were missing.
- Edit links pointed to
post=0.
- The actual contact forms remained intact in the database.
Verification:
Using WP-CLI, the normal query returned 8 regular WordPress posts instead of contact forms.
Running the same query with wp --skip-themes correctly returned 13 contact forms with valid IDs and titles.
I then applied a temporary fix through WPCode, removing the Satenet search callbacks during admin_init:
remove_action( 'pre_get_posts', 'satenet_search_post', 10 );
remove_action( 'pre_get_posts', 'satenet_search_page', 10 );
Result: Contact Form 7 now displays the 13 contact forms correctly, with their original titles and working Edit links.
Clearing LiteSpeed Cache and expired WordPress transients had not resolved the issue.
The permanent fix should be implemented by the Satenet theme developer, restricting these search functions to frontend queries.
I am sharing this finding in case other users experience the same problem.
Thank you again for your assistance.