Well the best way is to use a antispam plugin like Aksimet. Other captcha plugins can be helpful too, you just have to look for the captcha
keyword in wordpress repository.
If you want to do this manually, I can give you a hint. First of all, you need to know which action hook you want. I couldn’t find an action that fires before the comment insertion, but comment_post runs after that.
Then you need to detect if your comment body contains a url, this SO question can be helpful with that. You can delete a comment with wp_delete_comment function.
Related Posts:
- Filter out other users comments. Visualize only own comments and editor role users’ comments
- WordPress comment processing . Default unapproved comments detection before posting
- remove empty paragraphs from the_content?
- Issues with title-tag and document_title_parts
- Remove Actions/Filters added via Anonymous Functions
- Set JPEG compression for specific custom image sizes
- Define custom Page Template without its own .php file
- Add class to menu items of one specific menu (nav_menu_css_class)
- How to influence the information displayed on widget inside wp-admin
- Remove Comments Metabox but still allow comments
- Removing default image size list in Media Box
- How to restrict actions and filters “properly” by conditions
- Filter the query ONLY for the search results page
- opening links in new tab using – add_filter( ‘the_content’, ‘make_clickable’);
- Using add_filter() in Widgets
- Customize WordPress Media Manager – Media Window
- How can I remove the title “leave a reply” in the comment box in twentyeleven?
- How to reduce original image quality on upload?
- Is it possible to use a forgot password url filter?
- syntax for remove_filter in parent theme with class
- Add body class of category parent
- change the comment time output to: X time ago instead of actual date and time
- How to get comments with mixed status using get_comments?
- How to prevent deleting of comments when deleting a post
- Wrap gutenberg block ‘div’ in other elements/extra HTML
- Convert hyphen to underscore in permalinks
- Override parent theme function that is not hooked or in the functions.php file
- Remove Page Title from Static Frontpage
- disable comments if array exists
- Programmatically Add Font-Awesome Icons to Category Widget
- Change comments form title on a page by page basis
- Remove bulk actions based on user role or capabilities
- Default or Preset Content for Custom Post Types
- Remove “says” from comments
- Display the number of user comments
- Override a class function to include a custom template
- How to override filter in child theme?
- Removing title from page
- Hide some items from Screen options in dashboard for products
- How to change a certain text or term of WordPress into a custom into the whole site?
- Adding body class when post contains a specific shortcode
- Replace Archive Widget Link Text
- Exclude Empty Child Categories in Menu
- How to make unique add_filter to the_content of specific page template files – so each template gets its own addition
- Best way to programatically add “rel” attributes to page and post images
- Comments to only be seen by their author
- add_filter priority problem
- Limit filter upgrader_post_install to a single plugin
- How to Add a Random Custom Gravatar in the WordPress Comments?
- Remove default user registration, login and subscriber profiles
- How to update feed only 2-3 times a week (for Feedburner email)?
- Manipulate Output of wp_list_something: select menu instead of li’s
- Clean-up script tags
- How to use IF Statement in WordPress?
- Gravity Forms field entries into wp_query loop [closed]
- Post Pagination Showing Same Posts Every Page
- Show excerpt for only first post in query
- Remove function or filter
- modify a function filter
- Super simple shortcode not working
- How would go about if I just want a temporary function?
- Generating rel=prev and rel=next only on wordpress categories
- How to make applyFilters function return false via functions.php
- How to filter out shortcode when displaying the_excerpt() in the loop?
- Accepted arguments value in hook functions
- Get current page_id before loop, in functions.php
- Which action hook to use for function?
- Adding multiple taxonomy filters to functions.php
- str_replace function in theme
- Show top commenters without using a plugin
- Can’t check if a post has thumbnail adding filter to get_post_metadata()
- Adding HTML to the end of every post with the Block Editor
- Last updated date function
- Change the HTML of the comment form that is generating somewhere from the core WordPress
- Modify a function without editing template
- How to set default archive image without overriding first attached image? [closed]
- Commenter should see only his comments in wordpress
- How do I add Bootstrap and LESS to my migrated WordPress site?
- How to add nav menu items to a specific position within a menu
- Passing values from a widget to a function within a plugin
- Only let plugin add actions to wp_head & wp_footer on single posts
- Publish/Update post is changing image links from file url to post url
- Disable auto-resizing of uploaded images, but only for certain filename
- How to make custom column Admin>Users sortable?
- Get Current Post ID in functions php, meta query filter
- Output and filter data from a XML url
- Add to cart php not working [closed]
- Is possible add icon in title posts only in specific tag?
- wp-comment author- url +, email filter hook
- What did I do wrong in my functions code, that will not change the “Get New Password” text to “Send It”?
- create filter in functions.php
- How to filter $content in shortcode function
- Insert image in WordPress with HTML5 tag and caption function
- How to construct function for applying filter?
- Adding an external HTML link to a post thumbnail
- Replace a menu with widget or a custom template file programmatically
- woocommerce change currency per category [closed]
- Where to add the permalink in this function?
- Incorrect redirect after commenting
- Run wp_kses_decode_entities on atom feed?