没有插件,如何在管理页面的Wordpress中自定义404页面?

时间:2018-08-08 17:04:53

标签: wordpress wordpress-theming custom-wordpress-pages

所以,我已经在主题文件夹中创建了404.php页面,现在想显示应该在管理页面中进行编辑的内容。我在Google上发现的每条建议都说我需要为此插件,但我只想显示内容字段即可。我不想为这样琐碎的事情安装插件。我该怎么办?

更新:
忘了提及404页面使用的代码块是其他页面也使用的,还有https://www.google.com/ 函数的用法,该函数读取那些页面和404页面的自定义字段。如果我创建另一个the_field页面,这意味着我无法重用这些块,因为它们读取的是页而不是404 Content的字段。

404.php

404 Content

header.php

@include 'header.php'
...other code

因此,每个内容页面都有一个自定义字段,其中包含应加载的css文件的名称。如果我使用<html lang="ru"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <link rel="stylesheet" type="text/css" href="build/css/<?php the_field('style') ?>Styles.css"> <?php wp_head(); ?> </head> <body> 页面,则意味着我无法重复使用404 Content文件,对吗?

1 个答案:

答案 0 :(得分:0)

您当然不需要插件,并且有两种方法可以执行此操作。最简单的“快捷方式”是创建一个单独的“ 404内容”页面,获取该页面的ID,然后使用get_post()或{{3 }}就像这样:

404.php:

404.php

或者,您可以使用get_page_by_title()函数来处理404页面,但是由于您已经拥有自定义的<?php /** * Handle 404 errors with this file */ <!-- Some markup and/or functions here, get_header() etc. --> // Display Page Content $404_page = get_page_by_title( '404 Content' ); // Or use $page = get_post(123) where 123 is the ID of your 404 Content Page echo apply_filters( 'the_content', $404_page->post_content ); <!-- Some markup and/or functions here, get_footer() etc. --> ?> ,因此上述方法可能是最简单的。


更新:

由于通用404.php文件需要ACF的is_404()函数,因此您可能需要对其进行一些重构。您会在文档中注意到它允许3个参数,第二个为header.php

您可以使用$post_id文件中的以下内容动态修改ID:

header.php

然后将您对if( is_404() ){ $page = get_page_by_title( '404 Content' ); $id = $page->ID; } else { $id = get_the_ID(); } 的呼叫更新为the_field( 'some_field' )