要回答第一个问题(用Cat预先填充CPT),可以在函数中添加以下函数。php(先备份svp)
在下面的代码中,电影是自定义帖子类型,恐怖是类别
请更改为自己的首选项。
/**
* Set a Category on Custom Post Type
*
* Read more: {@link https://developer.wordpress.org/reference/functions/get_post_type/}
* {@link https://codex.wordpress.org/Function_Reference/get_category_by_slug}
* {@link https://codex.wordpress.org/Function_Reference/wp_set_object_terms}
*
*/
add_action( \'save_post\', \'wpse261307_set_cat_on_cpt\' );
function wpse261307_set_cat_on_cpt( $post_id )
{
global $wpdb;
// Check for correct post type
if ( get_post_type() == \'movies\' ) // Set post or custom-post type name here
{
// Find the Category by slug
$idObj = get_category_by_slug( \'horror\' ); // Set your Category here
// Get the Category ID
$id = $idObj->term_id;
// Set now the Category for this CPT
wp_set_object_terms( $post_id, $id, \'category\', true );
}
}// end function
--
然后,我将为这个特定的CPT制作一个隐藏后端中的元框的函数。(因此,没有人可以添加/更改类别,但这仅在您仅使用1个category pro发布时有用)
--
然后,您需要创建一个函数来隐藏这个特定的CPT,以便在主博客页面上显示(通过使用查询排除博客主页上的“工作”类别)
/**
* Exclude CPT with Cat jobs on Landing page
*
* Read more: {@link https://codex.wordpress.org/Function_Reference/get_category_by_slug}
* {@link https://codex.wordpress.org/Function_Reference/wp_set_object_terms}
* {@link https://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts#Exclude_categories_on_your_main_page}
* {@link https://codex.wordpress.org/Function_Reference/is_main_query#Examples}
*/
add_action( \'pre_get_posts\', \'wpse261307_exclude_cat_main_blog\' );
function wpse261307_exclude_cat_main_blog( $query )
{
global $wpdb;
// Find the Category by slug
$idObj = get_category_by_slug( \'horror\' );
// Get the Category ID
$id = $idObj->term_id;
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( \'cat\', -$id );
}
} // end function
希望这对你有所帮助。
注意:
将其添加到家庭brew插件或myfunctions.php
在wp-content/mu-plugins 文件夹(您必须自己创建)
•当切换到另一个主题时,我是最可靠的解决方案,以确保不会丢失任何东西(意思是看不见,因为它仍在您的数据库中)(直接在template
当您切换到另一个主题时,文件不再可见)顺便说一句,相同的(将它们添加到wp-content/mu-plugins
文件夹)我可以创建自定义帖子类型。
Ps,澄清为什么我不喜欢使用id
直接编号:
无论出于何种原因,某个类别被删除,之后似乎是一个错误,需要再次创建相同的类别
创建一个新类别时(即使使用相同的名称)会得到另一个类别id
数字,然后(当您在任何代码中直接使用数字本身时)由于错误的id
编号