个性化阅读
专注于IT技术分析

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

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

更新:

忘了提及404页面使用的代码块是其他页面也使用的, 并且使用了_field函数, 该函数读取那些页面和404页面的自定义字段。如果我创建另一个404内容页面, 这意味着我无法重用这些块, 因为它们读取了此页面的字段, 而不是404内容。

404.php

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

header.php

<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>

因此, 每个内容页面都有一个自定义字段, 其中包含应加载的css文件的名称。如果我使用404内容页面, 则意味着我无法重用header.php文件, 对吗?


#1


你当然不需要插件, 并且有两种方法可以执行此操作。最简单的”快捷方式”是创建一个单独的” 404 Content”页面, 获取该页面的ID, 然后使用get_post()或get_page_by_title()将内容导入到404.php文件中, 如下所示:

<?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. -->
?>

另外, 你可以使用is_404()函数以不同的方式处理404页面, 但是由于你已经具有自定义的404.php, 因此上述方法可能是最简单的。


更新:

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

你可以使用header.php文件中的以下内容动态修改ID:

if( is_404() ){
    $page = get_page_by_title( '404 Content' );
    $id   = $page->ID;
} else {
    $id = get_the_ID();
}

然后将对the_field(‘some_field’)的调用更新为the_field(‘some_field’, $ id)

赞(0)
未经允许不得转载:srcmini » 没有插件,如何在管理页面的WordPress中自定义404页面?

评论 抢沙发

评论前必须登录!