如何将默认内容添加到自定义帖子类型编辑器

已发表: 2022-01-29

如何将默认内容添加到自定义帖子类型编辑器 在上两个关于向 WordPress 帖子或页面添加内容的教程中,我们全面介绍了如何通过使用过滤器更改the_content 函数来添加内容。 我们演示了如何在 WordPress 帖子内容之前或之后添加内容。 在第二个教程中,我们讨论了向 WordPress 编辑器添加默认内容。

在我从这两个帖子中收到的反馈中——如何将默认内容添加到 WordPress 编辑器以及如何在 WordPress 中发布内容之后添加内容; 常见的问题是如何在自定义帖子类型中将默认内容添加到 WordPress 编辑器。

将默认内容添加到自定义帖子类型编辑器

在这篇文章中,我想修改我们在这篇文章中使用的过滤器,以便在 WordPress 编辑器上添加默认内容,以便我们在自定义帖子类型上使用相同的内容。 因此,本教程的目的是向您展示如何在自定义帖子类型编辑器中添加默认内容。

如果您没有使用过WordPress 自定义帖子类型,它们基本上就像默认页面或帖子,但您自己创建它们。

您可以通过将此代码(如下)添加到 WordPress 主题中的 functions.php 文件来创建它们,并且还有一个很好的教程,我说明了如何在不使用插件的情况下创建自定义帖子类型,您可以轻松地一步一步地遵循。

 //Njengah 教程自定义帖子类型示例 

  //钩 

	add_action('init', "njengah_tutorial_cpt");
  
  //回调函数

	函数 njengah_tutorial_cpt(){
		
		$标签=数组(
				'name' => _x('tutorials', 'post type general name'),
				'singular_name' => _x('tutorial', 'post type single name'),
				'menu_name' => _x('tutorials', 'admin menu'),
				'name_admin_bar' => _x('tutorial', 'add new on admin bar'),
				'add_new' => _x('新增', ''),
				'add_new_item' => __('添加新教程'),
				'edit_item' => __('编辑教程'),
				'new_item' => __('新教程'),
				'all_items' => __('所有教程'),
				'view_item' => __('查看教程'),
				'search_items' => __('搜索教程'),
				'not_found' => __('没有找到教程'),
				'not_found_in_trash' => __('没有在垃圾箱中找到教程'), 
				'parent_item_colon' => __('家长教程:'),
				
		);

			$args = 数组(
				'分层' => 真的,     
				'标签' => $标签,
				'公共' => 真的,
				'publicly_queryable' => 真,  
				'描述' => __('描述'),
				'show_ui' => 真, 
				'show_in_menu' => 真,
				'show_in_nav_menus' => 真,			
				'query_var' => 真,
				'重写' => 真的,
				'query_var' => 真,
				'rewrite' => array('slug' => 'tutorial'),
				'capability_type' => '页面',
				'has_archive' => 真, 
				'menu_position' => 22,
				“show_in_rest” => 真,
				'supports' => array('title', 'editor', 'author', 'thumbnail', 'revisions', 'page-attributes', 'custom-fields' )
			); 

			register_post_type('tutorial', $args);
		
		
	}

当您准备好自定义帖子类型后,您需要将我们在上一教程中添加的代码添加到函数文件中,以将默认内容添加到 WordPress 帖子编辑器。

该代码由一个过滤器和回调函数组成,其中包含我们需要添加到 WordPress 编辑器的内容。 代码如下:

 add_filter('the_content', 'add_content_after');

函数 add_content_after($content) {

     $after_content = “发布内容后我们的评论政策示例”;
 
     $完整内容 = $内容。 $after_content;

     返回 $fullcontent;

}

分步总结

在步骤的快速总结中,我们将通过以下三个步骤将默认内容添加到自定义帖子类型编辑器

  1. 创建一个过滤器钩子来过滤 default_content 和相应的回调函数,其中包含要添加到自定义帖子编辑器的默认内容。
  2. 通过在回调函数中添加 if/else 条件语句来检查是否为 TRUE/FALSE 来确定您是否属于自定义帖子类型
  3. 如果您在自定义帖子类型上,请在页面、帖子和其他自定义帖子类型等其他帖子上添加内容; 返回没有附加内容的内容。

如何将默认内容添加到帖子类型编辑器

在下一步中,我们需要在回调函数内部找出我们是否在自定义帖子类型屏幕中,如果不是,我们将不添加内容。

因此,理想情况下,我们将使用逻辑条件来确定我们是否在特定的自定义帖子类型上,如果是,我们将默认内容添加到编辑器,如果现在我们返回默认的 the_content 函数而不添加其他内容。

如何检查它是否是自定义帖子类型
您可以使用以下条件语句检查您是否使用自定义帖子类型:

 $currentID = get_the_ID();

if (get_post_type($currentID) == "custom-post-type-slug" ){

    // 然后在这里做你的事情 

}

也可以在我们之前分享的代码的回调函数中使用全局post对象,应该如下:

 函数 add_default_content_to_cpt( $content, $post ) {

     if($post->post_type == 'custom-post-type-slug '

                  // 然后在这里做你的事情
     }

}

将默认内容添加到自定义帖子类型编辑器的代码片段

现在将默认内容添加到自定义帖子类型编辑器的完整代码应该具有过滤器和回调函数,如下所示:

 add_filter('default_content', 'add_default_content_to_cpt', 10, 2);

函数 add_default_content_to_cpt( $content, $post ) {


     if($post->post_type == 'custom-post-type-slug'){


        // 添加到自定义帖子类型编辑器的内容 

        $new_content = '请登录后发表评论! 不允许垃圾邮件,Big Kahuna 正在观看!';

            $完整内容 = $内容。 $新内容;

               返回 $fullcontent;

     	}

           返回$内容; 

}

您应该将 custom-post-type-slug 替换为您在注册自定义帖子类型时添加的相应 slug。

当您在函数文件或插件中添加此代码时,您应该会看到添加到自定义帖子类型的内容,但不应在其他后期编辑器中看到,如下图所示:

将默认内容添加到自定义帖子类型编辑器

包起来

您可以通过添加过滤器将默认内容添加到自定义帖子编辑器,并在回调函数中检查它是否是带有条件语句(if/else 或 Switch 语句)的自定义帖子类型,如果不是,您只显示没有添加的内容。 对于想要在当前主题中的自定义帖子类型下方添加内容的 WordPress 开发人员或网站,这是一个有用的提示。

类似文章

  1. 如何删除已添加到您的购物车消息 WooCommerce