Using wordpress search on own plugin / database
-
Dear WordPress Devs,
my first ever developed wordpress plugins reads out a table from another database and prints its content as HTML into a wordpress site. After analysing some search queries and statistics, I found out, that the content which is displayed via my plugin is not crawled. It also seems like the wordpress search is not able to find it. This is worse because its one of my most important stuff on my site. Is there some way to fix it? Copy and pasting all that generated content would be a mess.
Since I’m no real developer, I would be really grateful for some hints or tutorials.Thank you in advance!
-
You can write some code to use the
pre_get_posts
action
https://developer.www.ads-software.com/reference/hooks/pre_get_posts/
to check for a search, and adjust the parameters for the query to search the other table also (is it a separate database or a separate table?).This is the same problem for every plugin that generates content dynamically. I’ve seen where shortcodes are expanded before the search, but that can really slow things down.
Are the posts that have the code from a custom post type? I’ve noticed that my custom post types do not appear in searches either.
Why wouldn’t search engines crawl the pages? Do you have a sitemap.xml file? Did you set up a property for the site in Google Search Console? Check this page out: https://moz.com/beginners-guide-to-seo/how-search-engines-operate
@joy:
It is a seperate database with five tables. Since I did not have the slightest idea how to move and connect to the wordpress scheme, the script is building up a second connection to that database. The code does nothing but building up a SQL query and showind the results.
It would be perfectly fine, if the wordpress search “learns” the HTML code which is displayed to the visitor. Its changes are dynamic, but quite slow (months or years!). It is sufficient that the search displays the site where the text is found.@kernix:
I use common wordpress sites and register my plugin via shortcode. The sites are inside sitemap.xml but the search engines do not find any texts on this site, which come from the plugin. This is weird because the content changes quite slowly (every three or four months). I do not use any url parameters since all the relevant stuff is handled via shortcode.Well, being separate, you can’t expect much in terms of the WordPress search finding your content. To have it searched at the same time, you will need to add code to make that happen. This is totally distinct from external search engines crawling your pages and finding that content. That should not be a problem since they get the generated pages, unlike the internal search does.
kernix’s problem with CPT not being searchable is separate also. That is a parameter for the CPT when registering it.
Need a link to the site – did you inspect the page or view the page source. Or is there a nofollow or something like that tied to the pages?
@joy:
Than, how do I integrate my database into the wordpress scheme besides moving that tablet into that database? Is there anything I need to know when connecting or selecting my tables? Never made a query inside the wordpress scheme before.
I don’t understand the code reference of pre_get_posts. Where is this to insert and what for?!
Sry, for being such a lousy dev, I got only some months of experience in php / mysql and never intended to be a dev and never will ??@kernix:
Nope, there is no exclude neither in robots nor search console. The part of the site which is written inside workpress works fine, it’s just my generated part that seems to be overseen. The HTML code the visitor sees is correct. I’m just wondering why I still don’t get ANY search results even for very specific queries. I did not have this problem before switching to wordpress.
If there’s a possibility to direct message, I can give you the site. I don’t want it to be shown publically due to seperation of concerns.Did you create the content the same way that Advanced Custom Fields does? Where you have to add code to the template files to actually display it? I took a course where the instructor had to do something with the REST API to have the custom fields to show in search results. I definitely want to look into that but I’m still going through the theme handbook page by page to tighten up my theme.
You both keep pinging someone else, not me. Please be considerate and use the correct username.
You might need to search for a plugin to incorporate external data into the site search. Or hire a developer (you can look at https://jobs.wordpress.net)
As I said, internal search is totally separate from external search. I am assuming we are talking about internal search, whereas kernix is talking mostly about external search.Sorry, I don’t know how to do that so I’ll stop – I thought you just did @ and select the names that come up. That’s the only time I ever did it.
5.5以后添加了 sitemaps相关的功能 具体看下面的链接
https://developer.www.ads-software.com/?s=sitemaps通过sitemaps相关的过滤器, 添加另一个数据库查询到的页面内容网址到 wp-sitemap.xml ,这可以让网站内容被收录
- This reply was modified 3 years, 10 months ago by feile.
The internal WP search would not impact search engine visibility, with the exception of when your content includes a link including a specific internal search term. Search bots will follow that, but they will not utilize the search form to find internal content using keyword terms. I don’t see how further internal search discussion contributes to the issue of visibility on search sites.
At least with Google search, just because your content appears on your sitemap (as it always should), it does not mean Google will index it for its use. It will refuse to index some content for its own mysterious reasons, as well as clear reasons like duplicated content.
About @ references. Yes, you pick from the list, but you must pick the correct user login name, not the display name. Login name joy != login joyously. In fact, @ references are generally unnecessary here. Topic participants can choose to be notified about new replies for themselves. If they chose not to, forcing a notification with an @ reference could be perceived as a bit rude. OTOH, @ references in other forums are common practice, so one has to expect it to happen here as well. In these forums it’s not really necessary, just address people by their display or login name without the @ ??
kernix:
I dunno what custom fields are. My plugin is only a php script which a large echo instruction that dumps the result into the shortcode-placeholder.joyously:
I was speaking of both: Internal and external search. Both are not working. So, if anyone is interested to google or wp-search for content which is displayed in about half of my site, it is impossible to get there ??
Since I’m developing my site as a hobby / practise, I’d rather learn how to solve that issue on my own than to pay someone. If it is too complicated, copy pasting the generated HTML code into the backend as HTML-block (or something like that) would be more efficient, if the content can be crawled properly.bcworkz:
Sorry for pinging the wrong username! I was not aware that this means something else in the WP forums. Speaking of Google search, the sites are indexed, but the sites to not appear in google search (or elsewhere) even if I copy-past complete passages. It seems like only my blogposts and normal sites are crawled correctly.Internal search only finds search terms in post titles and content as it appears in the DB. Anything inserted by shortcode by default will not be searched this way. External searches only index what is output, but they don’t index everything, only what they think will be pertinent.
Broadening internal search to include content from elsewhere means adding a separate search query to the process and somehow merging the results. As much as I hate redundant data, the simplest solution is to copy/paste content instead of importing via shortcode. While you seem to be willing to do so in your last reply, in your previous posts it doesn’t sound like a very good solution. Broadening the internal search isn’t necessarily too complicated. What would be a hindrance is if what is found in other tables cannot somehow be related back to a permalink which contains the found content.
If important content in output isn’t being indexed by search engines, you may need to rethink how that data is structured on the page. How to organize content for SEO is outside the scope of these forums. A forum more focused on SEO might be a better venue.
Thank you. Where can I read about search querying?
- The topic ‘Using wordpress search on own plugin / database’ is closed to new replies.