WordPress作为一种CMS--将发布/前端分离的最佳方式

时间:2022-02-04 作者:Rogelio

出于各种原因,这一点很重要,但我不确定它们是更好的方式还是其他后果:

CMS = Wordpress作为CMS。

WebSite = 静态站点生成器。

目前,当一篇帖子在CMS上发布时,我使用API将信息发送到生成页面的网站。所有工程
然而,我不希望CMS也发布帖子
我目前通过将所有流量重定向到CMS到/wp admin/page来处理此问题
这似乎并不理想
我宁愿将“发布”按钮与实际发布帖子分离。

这是最好的方式吗

function change_publish( $post_ID )  
{
// Do something here //
}

add_action( \'publish_post\', \'change_publish\' ); 
即覆盖发布功能?

根据@alx的评论进行编辑

我会/想利用发布帖子的状态来表示帖子已发布,但要澄清这一点,请参见以下内容:

  • 您提出了一个问题;Rest API与自定义API在这里,我可以澄清一下,使用WP Remove Get and Post,我正在向其他资源发出HTTP Post和Get请求,但您可能需要一些我不知道的信息,我没有使用WordPress REST API端点。进一步澄清:当一个人点击文章上的publish时,我已经连接到publish,以向一个单独的资源发起HTTP post语句,文章实际上是在该资源中发布的。然而,wordpress仍然会在本地网站上发布这篇文章

    另外,我想我可以让发布的帖子具有私密或密码保护的可见性,但它们是真的吗;“解耦”;从前端发布?

  • 1 个回复
    最合适的回答,由SO网友:Oleksii 整理而成

    要禁用WP frontend和WP REST API输出,请在/WP content/themes/myemptytheme/中创建一个空主题,即“我的空主题”,其中包含3个文件:

    风格。css索引。php函数。php风格。css只能包含主题名称:

    /*
    Theme Name: My Empty Theme
    */
    
    索引。php-保留为空

    功能。php-包括以下代码以禁用REST API输出:

    <?php
       add_filter( \'rest_authentication_errors\', \'no_rest_api\' );
       function no_rest_api( $result ) {
              return new WP_Error( \'no_rest_api\', \'Rest API disabled\', array( \'status\' => rest_authorization_required_code()));
       }
    ?>
    
    查询REST API端点时,响应将为:

    {
      "code": "no_rest_api",
      "message": "Rest API disabled",
      "data": {
         "status": 403
      }
    }
    
    记住在创建主题文件后切换到新主题。

    相关推荐

    如何管理从旧CMS迁移后的约90k 301重定向

    我最近将内容从Typo3转移到WP,大约有30000篇文章。每篇文章都有3个或更多URL,我将其存储在自定义文本字段中。。新行中的每个旧url。我可以通过编程将每个存储的旧typo3链接与wordpress链接配对,但问题是如何管理301重定向而不将一些输出粘贴到。htaccess。我的想法是:呼叫http://www.domain.tld/old-link/(通常点击404)wp将请求的旧链接与所有元字段“\\u old\\u url”进行比较,如果找到,则重定向301,wp提供新url,知道如何做吗?