이 튜토리얼에서는 WordPress 게시물 관리 화면에 새 열을 추가하는 방법을 배우며, 이 열에서는 각 게시물의 추천 이미지를 표시합니다. 이 새 열은 활성 사용자 정의 게시물 유형에 대한 관리 화면에도 추가됩니다.
1단계. 추천 이미지 활성화
이 튜토리얼에서는 활성 테마 디렉터리의 functions.php 파일을 사용합니다. 파일이 존재하지 않으면 다음 내용으로 새 파일을 생성할 수 있습니다:
으아아아먼저 새 게시물 추가 페이지에서 해당 이미지를 사용할 수 있는지 확인하세요.
추천 이미지 상자가 표시되지 않으면 functions.php에 다음 줄을 추가하세요.
으아아아add_theme_support()
函数注册对主题内指定功能的支持。传递的参数是一个字符串,指定要添加的功能。在本例中,它是 post-thumbnails
. 다른 값으로는 위젯, 추천 콘텐츠, 메뉴 등이 있을 수 있습니다.
또한 추천 이미지의 미리보기를 표시하기 위해 200픽셀의 사용자 정의 크기를 설정했습니다.
으아아아add_image_size()
函数为我们注册一个新的图像尺寸,宽度为200px,高度设置为150px。我们还告诉 WordPress 使用调整大小来达到所需的大小。不过,您可以将第四个参数设置为 true
자르기를 사용합니다.
이제 각 게시물의 추천 이미지를 포함하는 새 열을 게시물 목록에 추가하겠습니다. 하지만 먼저 게시물의 추천 이미지를 얻으려면 ST4_get_featured_image()
라는 함수가 필요합니다.
테마 디렉토리에서 functions.php 파일을 열고 다음 콘텐츠를 추가하세요.
으아아아우리는 get_post_thumbnail_id()
기능을 사용하여 게시물 썸네일 ID를 가져옵니다. 여기서 게시물 썸네일이라는 용어는 추천 이미지를 나타냅니다.
두 가지 함수를 정의합니다. 첫 번째는 새 열을 추가하고 두 번째는 새 열의 각 셀에 추천 이미지를 호출하여 표시합니다.
으아아아이 두 함수는 Posts 테이블을 생성하는 WordPress 핵심 함수에 "연결"됩니다.
개발자는 WordPress API를 통해 WordPress 기본 동작을 수정할 수 있습니다.
WordPress는 플러그인이 WordPress의 나머지 부분에 "연결"되도록 하는 후크를 제공합니다. 즉, 특정 시간에 플러그인의 함수를 호출하여 플러그인을 시작할 수 있습니다.
간단히 말해서 Hooks를 사용하면 개발자는 핵심 파일을 편집하지 않고도 WordPress 기능을 확장할 수 있습니다. 후크에는 Action과 Filters의 두 가지 유형이 있습니다. 둘 다 WordPress 실행 중에 시작되지만 필터는 입력을 수락, 변환 및 반환 하는 반면 작업은 아무것도 반환하지 않고 필요한 모든 것을 인쇄합니다.
우리의 경우 ST4_columns_head()
函数采用 $defaults
数组,其中包含默认的 Posts 表列(标题、类别、标签等...),向数组添加一个新的 featured_image
항목을 반환 하여 WordPress의 핵심 기능인 표 HTML 인쇄에 사용합니다.
반면, ST4_columns_content()
함수는 두 개의 변수($column_name
및 $post_ID
)를 허용하고 이를 기반으로 출력ST4_columns_content()
函数接受两个变量($column_name
和 $post_ID
),并根据它们打印输出。更准确地说,在遍历 $defaults
数组的循环的每次迭代中都会调用 ST4_columns_content()
。在每次迭代中,WordPress 都会向我们的函数传递两个参数:列名称和帖子 ID。该函数分析所有列名称,当名称等于我们在 ST4_columns_head()
을 인쇄합니다. 보다 정확하게는 $defaults
배열을 반복하는 루프가 반복될 때마다 ST4_columns_content()
가 호출됩니다. 각 반복에서 WordPress는 열 이름과 게시물 ID라는 두 가지 매개 변수를 함수에 전달합니다. 이 함수는 모든 열 이름을 분석하고 이름이 ST4_columns_head()
에 지정한 이름과 같을 때 추천 이미지를 확인합니다.
이제 함수를 WordPress 플러그인 API에 연결할 수 있습니다.
manage_posts_columns
过滤器来挂钩 ST4_columns_head()
기능을 활용해보겠습니다. 이 필터는 게시물 목록에 표시되는 열을 수정하는 데 도움이 될 수 있습니다.
우리가 사용하는 또 다른 후크는 열 이름이 출력하려는 열 이름과 일치하는지 확인하는 manage_posts_custom_column
,它将为帖子列表中的每个自定义列触发挂钩函数。我们的 ST4_columns_content()
함수입니다.
10
和 2
매개변수는 함수 실행 순서(우선순위)와 함수에서 허용하는 매개변수 수입니다. 어쨌든 add_action 아래의 WordPress Codex에서 자세한 내용을 읽을 수 있습니다.
이제 마침내 추천 이미지가 포함된 게시물을 작성할 수 있습니다:
因此,当您在 /wp-admin/edit.php 中打开管理帖子屏幕时,您将看到新的特色图片列:
前两个帖子有特色图片,第三个帖子(没有特色图片的帖子)没有,因此不会显示任何内容。
要为没有特色图像的帖子显示默认图像,您可以这样修改 ST4_columns_content()
函数:
<?php function ST4_columns_content($column_name, $post_ID) { if ($column_name == 'featured_image') { $post_featured_image = ST4_get_featured_image($post_ID); if ($post_featured_image) { // HAS A FEATURED IMAGE echo '<img src="' . $post_featured_image . '" />'; } else { // NO FEATURED IMAGE, SHOW THE DEFAULT ONE echo '<img src="' . get_bloginfo( 'template_url' ); . '/images/default.jpg" />'; } } } ?>
default.jpg 图像必须存在于我们活动主题的 images 目录中。
您还可以通过打开屏幕选项面板并单击特色图像复选框来显示/隐藏此新列:
WordPress 最有趣和最有用的功能之一是可以添加自定义帖子类型(以及自定义分类法)。您可以使用帖子类型创建不同于帖子和页面的新内容类型,例如管理电影数据库。事实上,当您添加自定义帖子类型时,WordPress 会创建该帖子类型的所有管理页面:您可以像默认帖子和页面一样添加、编辑和删除这些帖子。
现在我们通过 WordPress register_post_type()
函数创建一个新的自定义帖子类型:电影:
add_action('init', 'ST4_add_movies'); function ST4_add_movies() { $args = array( 'label' => __('Movies'), 'singular_label' => __('Movie'), 'public' => true, 'show_ui' => true, 'capability_type' => 'post', 'hierarchical' => false, 'rewrite' => true, 'supports' => array('title', 'editor', 'thumbnail') ); register_post_type( 'movie' , $args ); }
此功能可让您注册新的帖子类型。您应该注意,我们正在使用 init
挂钩来调用 ST4_add_movies()
,然后它会注册我们的 movie 帖子类型。我们传递给 register_post_type()
函数的参数数组决定了自定义帖子类型的行为方式。在本例中,我们将 show_ui
键的值设置为 true
。这会生成通过管理仪表板管理电影帖子类型所需的 UI。
因此,当您将特色图像添加到电影帖子时...
...您还将在管理电影屏幕中看到特色图像(请注意,您还可以在此处显示/隐藏“屏幕选项”中的列):
如果您使用 manage_posts_columns
和 manage_posts_custom_column
挂钩,该列将显示在所有管理帖子屏幕中。事实上,这些过滤器适用于除页面之外的所有类型的帖子。
// ALL POST TYPES: posts AND custom post types add_filter('manage_posts_columns', 'ST4_columns_head'); add_action('manage_posts_custom_column', 'ST4_columns_content', 10, 2);
如果您想仅在管理帖子屏幕中添加列,请使用:
// ONLY WORDPRESS DEFAULT POSTS add_filter('manage_post_posts_columns', 'ST4_columns_head', 10); add_action('manage_post_posts_custom_column', 'ST4_columns_content', 10, 2);
如果您想仅在管理页面屏幕中添加列,请使用:
// ONLY WORDPRESS DEFAULT PAGES add_filter('manage_page_posts_columns', 'ST4_columns_head', 10); add_action('manage_page_posts_custom_column', 'ST4_columns_content', 10, 2);
如果您想仅在管理电影屏幕中添加列,请使用:
// ONLY MOVIE CUSTOM TYPE POSTS add_filter('manage_movie_posts_columns', 'ST4_columns_head_only_movies', 10); add_action('manage_movie_posts_custom_column', 'ST4_columns_content_only_movies', 10, 2); // CREATE TWO FUNCTIONS TO HANDLE THE COLUMN function ST4_columns_head_only_movies($defaults) { $defaults['directors_name'] = 'Director'; return $defaults; } function ST4_columns_content_only_movies($column_name, $post_ID) { if ($column_name == 'directors_name') { // show content of 'directors_name' column } }
如果您有其他自定义帖子类型,您可以轻松向其中添加特色图像列。如果您手动添加帖子类型,请检查添加自定义帖子的文件并查找 register_post_type()
函数的第一个参数:
register_post_type( 'book' , $args ); // book is the post type
如果自定义帖子类型是通过其他插件定义的并且/或者您找不到 register_post_type()
的位置,请在浏览器中打开自定义帖子管理屏幕并检查 URL:
http://www.yoursite.com/wp-admin/edit.php?post_type=<u>book</u>
在本例中,图书是帖子类型。
最后,以这种方式修改钩子,将电影替换为书籍:
add_filter('manage_book_posts_columns', 'ST4_columns_book_head'); add_action('manage_book_posts_custom_column', 'ST4_columns_book_content', 10, 2);
不要忘记创建两个函数:ST4_columns_book_head()
用于创建列,ST4_columns_book_content()
用于显示列内容。
如果您需要添加多个列,您可以轻松执行以下操作:
// ADD TWO NEW COLUMNS function ST4_columns_head($defaults) { $defaults['first_column'] = 'First Column'; $defaults['second_column'] = 'Second Column'; return $defaults; } function ST4_columns_content($column_name, $post_ID) { if ($column_name == 'first_column') { // First column } if ($column_name == 'second_column') { // Second column } }
您还可以删除 WordPress 默认列,例如帖子管理屏幕中的类别列:
add_filter('manage_post_posts_columns', 'ST4_columns_remove_category'); // REMOVE DEFAULT CATEGORY COLUMN function ST4_columns_remove_category($defaults) { // to get defaults column names: // print_r($defaults); unset($defaults['categories']); return $defaults; }
위 내용은 사용자 정의 WordPress 게시물 및 사용자 정의 게시물 유형 관리 화면의 열 표시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!