This should work for you, using plugins_url()
:
...
// Assumes that your templates are in a subdirectory called 'templates' in your plugin.
// Adjust accordingly.
$templates_dir = plugins_url( 'templates', __FILE__ );
$page_404 = $templates_dir . '/404-' . $post_type . '.php' );
...
Update: template_include
If you want to have WordPress loaded up, you might be better off to use the template_include
filter.
add_filter( 'template_include', array( 'MyClass', '404_template' );
class MyClass {
function 404_template( $template ) {
if ( is_404() ) {
global $post_type;
$my_template = plugins_url( 'templates/404-' . $post_type . '.php' , __FILE__ );
if ( file_exists( $my_template ) ) {
$template = $my_template;
}
}
return $template;
}
}
Related Posts:
- Template redirect template loaded, but the header 404
- How do I redirect a permalink for a Draft post to a custom 404 page?
- Add custom content to nonexistent page
- WordPress Migration: Getting 404 Errors: Only Home Page works
- External page integrated into WordPress returns a 404 error
- WordPress Theme’s 404.php not found, server defaults to Apache’s own 404 page
- get_the_ID() gives notice in 404 page
- How to open the 404 page in the Theme Customizer preview?
- stop redirection on /wp-admin call to /wp-login
- Feed 404 Errors
- 404 when fetching image from wp-content/uploads/
- REST API: No route was found matching the URL and request method
- WordPress REST API 404
- Changing Site Address (URL) causes 404
- Detect 404 before headers are sent
- In wordpress I am manipulation 404 response. I want to give the response before 404 error is given to google
- 404 error on homepage when using Nginx proxying to Apache
- Non “WordPress” pages/code getting 404 error
- 404 error on all pages but homepage
- Where does the 404 redirection happen?
- template_redirect to accompany with a shortcode
- Where is the best part to hijack or catch a potential 404
- page not found in Chrome, but found in Firefox
- How to identifty post from its URL in 404 page?
- Custom pagination structure
- Why does my WordPress show a 404 message for 403 forbidden directories?
- Moved to new server, all pages work EXCEPT home page (page not found)
- Using a custom field value to redirect away from a 404 page
- High CPU usage on 404 errors
- How to fix “failed to set referrer policy: The value ‘ ‘ is not one of…”?
- “Lost password” page triggers 404
- 404 to 301 – Fixing old links
- How do I bypass WordPress 404 handling?
- $error = 404 after caught add_rewrite_rule
- How do I go about fixing this apparently messed up upgrade?
- WordPress Stats keeps showing non-existent post as a top post?
- WP Rest API not working
- What does do_action(‘admin_init’); does actually?
- Form in WordPress : 404
- Why is my Javascript console showing a 404 error for a file called “null” on a clean WordPress install?
- Why Runtime service worker (runtime-service-worker.js) is being loaded, but can’t be found?
- Non-existent page returns code 200
- WP is redirecting instead of going to 404
- Conditional for 404 page not work
- Nginx with WordPress not showing template 404 for certain file types
- post parameter ‘name’ 404 error
- Intermittently missing pages and posts in WordPress
- Getting a 404 in Debugger for example.com/wp-admin/Array?
- how to block direct access to multiple thank you pages?
- oEmbed 404 errors when trying to use embed block
- Intercept 404 and try to serve another content if exists?
- 404 after moving localhost wp to server
- Intermittent 404 errors, rewrite rules, and BBPress
- How do I show the WP admin error page?
- WordPress takes too long to show 404 error on images (on LEMP stack)
- WordPress Post – On Post – 404 Page Not Found
- How to find out which function is causing a 404
- Prevent WordPress from interpreting a subfolder?
- Getting 404s on New Pages
- How can I send an email in my plugin?
- All pages after level 1 showing 404 after WordPress migration plugin – how to fix?
- index2.php in root causing 404 error
- Why I get File Not Found (404 error) when the file is actual there?
- Adding rewrite rule dynamically for search results redirecting to 404 URL
- WP_DEBUG must be on, otherwise edit post or page will show 404 error
- Getting “404 page not found” error when i access to my Login page
- Virtual robots.txt missing
- Moved from Blogger to WordPress, however I can only see the Google 404 page
- Custom 404 page for dashboard
- wp_redirect on base wp-admin and login
- wp-tinymce.php 404
- WordPress.org support topics returning 404 [closed]
- Display child pages on parent page: 404 message overrules shortcode in page
- How to pass a message using template_redirect
- How can I prevent non-existing wordpress pages from getting redirected to home page
- Incorrect url for sharing blog on linkedin [closed]
- Catch 404 errors in nested installations
- Getting 404 error on my wp rewrite error
- WordPress 404 Page displaying on a sub directory that has it’s own 404 page
- redirect deleted / drafted pages
- 404 error on dynamic stylesheet creation
- Why do I have a weird rendering issue only on 404.php caused by wp_nav_menu?
- make wordpress log errors in apache log file
- How to fix: “The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.”
- Page not found (404 Error) even if the page exists?
- WordPress refuses to read the .htaccess file and gives a 404 for sub-pages
- How to override a query and display specific page by ID?
- How to recover WordPress Adress(URL)
- Custom JSON feed rewrite
- My wordpress website does not show 404 page and results in http 500 error
- Why does the $_GET parameter ?search forward the front-page to the archive/blog page
- wp-json Returns 404 Upon Plugin Activation
- Page not found – Wamp green, phpmyadmin working
- WordPress 404 errors for old plugin files via Google Bot
- URL Change – Check if Post Exists Before 404
- When I remove get_header() from 404 page, my css doesnt work
- WPML – 404 Error when I try to pass GET parameters in my “different languages in directories” installation
- How to use wp_footer() on a 404 page?
- How to direct user to actual 404 page when a check is false in single.php?
- Sub Domain’s Pages return 404