[TOOL/WORDPRESS] 워드프레스 사이트에서 Robots.txt 설정하기
■ 워드프레스 사이트에서 Robots.txt를 설정하는 방법을 보여준다. • robots.txt 파일은 웹 사이트에서 robot의 접근을 제어하는 파일이다. • robots.txt 파일은 반드시 웹 사이트의
■ 워드프레스 사이트에서 Robots.txt를 설정하는 방법을 보여준다. • robots.txt 파일은 웹 사이트에서 robot의 접근을 제어하는 파일이다. • robots.txt 파일은 반드시 웹 사이트의
■ 워드프레스 사이트 주소에 ?ckattempt=1~3이 추가되고 리디렉션되는 경우 처리하는 방법을 보여준다. 카페24를 이용하는 사이트에서 주로 발생되고 있다. 카페24의 스팸 쉴드가 문제의 원인으로
■ Categories 클래스의 GetAllAsync 메소드를 사용해 전체 카테고리를 구하는 방법을 보여준다. ▶ Program.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
using WordPressPCL; using WordPressPCL.Models; namespace TestProject; /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> /// <returns>태스크</returns> private async static Task Main() { string baseURL = "https://somebody_wordpress.com/wp-json/"; string userID = "사용자ID"; string applicationPassword = "애플리케이션 패스워드"; WordPressClient client = new WordPressClient(baseURL); client.Auth.UseBasicAuth(userID, applicationPassword); IEnumerable<Category> categoryEnumerable = await client.Categories.GetAllAsync(useAuth : true); Dictionary<int, CategoryKeyModel> categoryKeyDictionary = new Dictionary<int, CategoryKeyModel>(); foreach(Category category in categoryEnumerable.OrderBy(category => category.Parent * 10000 + category.Id)) { if(category.Parent == 0) { CategoryKeyModel categoryKey = new CategoryKeyModel(); categoryKey.KEY = category.Name.ToUpper().Trim(); categoryKey.PARENT_KEY = null; categoryKey.CATEGORY = category; categoryKeyDictionary.Add(category.Id, categoryKey); } else { CategoryKeyModel parentCategoryKey = categoryKeyDictionary[category.Parent]; CategoryKeyModel categoryKey = new CategoryKeyModel(); categoryKey.KEY = $"{parentCategoryKey.KEY}/{category.Name.ToUpper().Trim()}"; categoryKey.PARENT_KEY = parentCategoryKey.KEY; categoryKey.CATEGORY = category; categoryKeyDictionary.Add(category.Id, categoryKey); } } foreach(KeyValuePair<int, CategoryKeyModel> keyValuePair in categoryKeyDictionary) { CategoryKeyModel categoryKey = keyValuePair.Value; Console.WriteLine($"{categoryKey.KEY}, {categoryKey.CATEGORY.Name}"); } } #endregion } |
TestProject.zip
■ Media 클래스의 GetAllAsync 메소드를 사용해 전체 미디어를 구하는 방법을 보여준다. ▶ Program.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
using WordPressPCL; using WordPressPCL.Models; namespace TestProject; /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> /// <returns>태스크</returns> private async static Task Main() { string baseURL = "https://somebody_wordpress.com/wp-json/"; string userID = "사용자ID"; string applicationPassword = "애플리케이션 패스워드"; WordPressClient client = new WordPressClient(baseURL); client.Auth.UseBasicAuth(userID, applicationPassword); try { IEnumerable<MediaItem> mediaItemEnumerable = await client.Media.GetAllAsync(useAuth : true); foreach(MediaItem mediaItem in mediaItemEnumerable) { Console.WriteLine($"{mediaItem.Id}"); Console.WriteLine($"{mediaItem.MediaType}"); Console.WriteLine($"{mediaItem.Link}"); Console.WriteLine($"/wp-content/uploads/{mediaItem.MediaDetails.File}"); Console.WriteLine(); } } catch(Exception exception) { Console.WriteLine(exception.ToString()); } } #endregion } |
TestProject.zip
■ Tags 클래스의 GetAllAsync 메소드를 사용해 전체 태그를 구하는 방법을 보여준다. ▶ Program.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
using WordPressPCL; using WordPressPCL.Models; namespace TestProject; /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> /// <returns>태스크</returns> private async static Task Main() { string baseURL = "https://somebody_wordpress.com/wp-json/"; string userID = "사용자ID"; string applicationPassword = "애플리케이션 패스워드"; WordPressClient client = new WordPressClient(baseURL); client.Auth.UseBasicAuth(userID, applicationPassword); try { IEnumerable<Tag> tagEnumerable = await client.Tags.GetAllAsync(useAuth : true); foreach(Tag tag in tagEnumerable.OrderBy(tag => { return tag.Name; })) { Console.WriteLine($"{tag.Id}, {tag.Name}"); } } catch(Exception exception) { Console.WriteLine(exception.ToString()); } } #endregion } |
TestProject.zip
■ Posts 클래스의 UpdateAsync 메소드를 사용해 포스트를 수정하는 방법을 보여준다. ▶ Program.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
using WordPressPCL; using WordPressPCL.Models; namespace TestProject; /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> /// <returns>태스크</returns> private async static Task Main() { string baseURL = "https://somebody_wordpress.com/wp-json/"; string userID = "사용자ID"; string applicationPassword = "애플리케이션 패스워드"; WordPressClient client = new WordPressClient(baseURL); client.Auth.UseBasicAuth(userID, applicationPassword); try { int postID = 310; bool useAuth = true; Post post = await client.Posts.GetByIDAsync(postID, false, useAuth); if(post != null) { post.Title = new Title("수정한 포스트 제목"); post.Content = new Content("<b>수정한 포스트 내용</b>"); Post postUpdated = await client.Posts.UpdateAsync(post); Console.WriteLine($"포스트가 성공적으로 수정되었습니다."); } else { Console.WriteLine("수정할 포스트가 없습니다."); } } catch(Exception exception) { Console.WriteLine($"에러가 발생했습니다 : {exception.Message}"); } } #endregion } |
TestProject.zip
■ Posts 클래스의 GetByIDAsync 메소드를 사용해 포스트를 구하는 방법을 보여준다. ▶ Program.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
using WordPressPCL; using WordPressPCL.Models; namespace TestProject; /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> /// <returns>태스크</returns> private async static Task Main() { string baseURL = "https://somebody_wordpress.com/wp-json/"; string userID = "사용자ID"; string applicationPassword = "애플리케이션 패스워드"; WordPressClient client = new WordPressClient(baseURL); client.Auth.UseBasicAuth(userID, applicationPassword); try { int postID = 310; bool useAuth = true; // 공개 포스트는 false로 해도 된다. Post post = await client.Posts.GetByIDAsync(postID, false, useAuth); if(post != null) { Console.WriteLine($"포스트를 찾았습니다 : {post.Title.Rendered}"); } else { Console.WriteLine("포스트를 찾을 수 없습니다!"); } } catch(Exception exception) { Console.WriteLine($"에러가 발생했습니다 : {exception.Message}"); } } #endregion } |
TestProject.zip
■ Posts 클래스 : DeleteAsync 메소드를 사용해 포스트 삭제하기 ▶ Program.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
using WordPressPCL; namespace TestProject; /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> /// <returns>태스크</returns> private async static Task Main() { string baseURL = "https://somebody_wordpress.com/wp-json/"; string userID = "사용자 ID"; string applicationPassword = "애플리케이션 패스워드"; WordPressClient client = new WordPressClient(baseURL); client.Auth.UseBasicAuth(userID, applicationPassword); int postID = 100; bool result = await client.Posts.DeleteAsync(postID); if(result) { Console.WriteLine($"포스트가 성공적으로 삭제되었습니다 : {postID}"); } else { Console.WriteLine($"포스트 삭제를 실패했습니다 : {postID}"); } } #endregion } |
TestProject.zip
■ Auth 클래스의 UseBasicAuth 메소드를 사용해 인증하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 |
using WordPressPCL; string baseURL = "https://somebody_wordpress.com/wp-json/"; string userID = "사용자ID"; string applicationPassword = "애플리케이션 패스워드"; WordPressClient client = new WordPressClient(baseURL); client.Auth.UseBasicAuth(userID, applicationPassword); |
■ Posts 클래스의 CreateAsync 메소드를 사용해 포스트를 추가하는 방법을 보여준다. ▶ Program.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
using WordPressPCL; using WordPressPCL.Models; namespace TestProject; /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> /// <returns>태스크</returns> private async static Task Main() { string baseURL = "https://somebody_wordpress.com/wp-json/"; string userID = "사용자ID"; string applicationPassword = "애플리케이션 패스워드"; WordPressClient client = new WordPressClient(baseURL); client.Auth.UseBasicAuth(userID, applicationPassword); Post newPost = new Post() { Title = new Title("새로운 포스트 제목"), Content = new Content("새로운 포스트 내용"), Status = Status.Draft }; Post postCreated = await client.Posts.CreateAsync(newPost); if(postCreated != null) { Console.WriteLine("포스트가 성공적으로 추가되었습니다."); Console.WriteLine(); Console.WriteLine($"포스트 ID : {postCreated.Id }"); Console.WriteLine($"포스트 제목 : {postCreated.Title.Rendered}"); Console.WriteLine($"포스트 링크 : {postCreated.Link }"); } else { Console.WriteLine("포스트 추가에 실패했습니다."); } } #endregion } |
TestProject.zip
■ Posts 클래스의 GetAllAsync 메소드를 사용해 전체 포스트를 구하는 방법을 보여준다. ▶ Program.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
using WordPressPCL; using WordPressPCL.Models; namespace TestProject; /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> /// <returns>태스크</returns> private async static Task Main() { WordPressClient client = new WordPressClient("https://somebody_wordpress.com/wp-json/"); IEnumerable<Post> postEnumerable = await client.Posts.GetAllAsync(); foreach(Post post in postEnumerable) { string title = post.Title.Rendered.Trim(); Console.WriteLine(title); } } #endregion } |
TestProject.zip
■ WordPressPCL 누겟을 설치하는 방법을 보여준다. 1. Visual Studio를 실행한다. 2. [도구] / [NuGet 패키지 관리자] / [패키지 관리자 콘솔] 메뉴를 실행한다.
■ CAFE24 호스팅 웹 서버에서 WORDPRESS 자동 설치시 플러그인 목록을 보여준다. ▶ 플러그인 목록
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
[활성화] Disable XML-RPC-API 버전 : 2.1.4.8 작성자 : Neatma Login Lockdown 버전 : 2.06 작성자 : WebFactory Ltd NinjaFirewall (WP Edition) 버전 : 4.5.8 작성자 : The Ninja Technologies Network Two Factor 버전 : 0.8.1 작성자 : Plugin Contributors [비활성화] Really Simple SSL 버전 : 7.0.6 작성자 : Really Simple Plugins WP Super Cache 버전 : 1.9.4 작성자 : Automattic WPForce Logout 버전 : 1.5.0 작성자 : Sanjeev Aryal 아키스밋 스팸 방지 버전 : 5.2 작성자 : Automattic 안녕 달리 버전 : 1.7.2 작성자 : Matt Mullenweg |
※ 해당 버전은 최신 버전으로 업데이트를 하였다.
■ CAFE24 호스팅 웹 서버에서 http를 https로 리다이렉트시키는 방법을 보여준다. 1. 파일질라로 CAFE24 호스팅 웹 서버에 FTP로 접속을 한다. 2. 루트 디렉토리에
■ 기존의 모든 글/페이지의 댓글을 비활성화하는 방법을 보여준다. 1. 왼쪽 메뉴에서 [글] 항목을 클릭한다. 2. [글] 페이지에서 [제목] 컬럼 헤더의 체크 박스를
■ 새로 작성하는 글/페이지에서 댓글을 비활성화하는 방법을 보여준다. 1. 왼쪽 메뉴에서 [설정] 항목을 클릭한다. 2. [설정] 항목에서 [토론] 항목을 클릭한다. 3. [토론