詳細検索

각 카테고리의 최신 게시물이 포함된 워드프레스 단축코드는 "NEW"로 표시됩니다

아바타
글쓴이 maeno
6분 읽기

각 카테고리의 최신 게시물이 포함된 워드프레스 단축코드는 "NEW"로 표시됩니다
日本語에서 번역 • 원문 보기

[캡션 ID="첨부파일_364" align="alignleft" width="320"]

特定カテゴリーに新着投稿があればNEWを表示するショートコード[/캡션]

워드프레스로 인트라넷을 재구축할 때, 요청 중 하나는 각 카테고리의 최신 게시물이 포함된 메뉴의 사이드바에 "NEW" 표시를 표시해 달라는 것이었습니다.
그래서 특정 카테고리를 지정하고, 해당 카테고리 게시물에 최신 게시물이 포함되어 있다면 카테고리 이름 옆에 "NEW" 마크를 표시하는 단축코드를 만들었고, 여기 공유하겠습니다. 확장으로, 카테고리 내 최신 게시물 수를 세어 그 숫자를 표시할 수도 있습니다(페이스북 메뉴에서 최신 미읽기 아이콘처럼 표시할 수도 있습니다).

여러 단축코드를 찾아봤지만, 워드프레스에서 기사 목록 옆에 "NEW"라고 표시되는 단축코드가 많고, 모두 기사 목록의 최신 평가들이고, 카테고리별 최신 평가를 위한 단축코드를 찾지 못해 직접 만들기로 했습니다.
저는 Kunitoshi Hoshino의 WordPress 커뮤니티에서 소개한 "WordPress에서 새로운 것을 표시하는 4가지 방법"이라는 기사를 참고했습니다. 그의 사이트는 WordPress 기업 사이트에만 고유한 요청과 필요에 대한 TIPS를 소개하여 매우 도움이 되었습니다.

[php highlight="2-37,38"] function addnew($attr, $content){ extract(shortcode_atts(array( 'slug' => '', 'ttype' => 'pub', 'term' => 7, 'vtype' => 'str', ), $atts)); $today = date_i18n('U'); $ttype = ($ttype!='pub') ? [eos]'mod' : 'pub'; [eos]$term = ($term!=7) ? [eos]intval($term) : 7; [eos]$vtype = ($vtype!='str') ? [eos]'num' : 'str'; [eos]$value = ($content!='') ? [eos]do_shortcode($content) : 'new'; [eos]global $post; [eos]$cats = get_category_by_slug($slug); 만약(!) $cats){ return ''; } else{ $cat = $cats->term_id; if(!) $cat) 반환 ''; } $last_post_ids = array(); $lastposts = get_posts('category='.$cat); foreach($lastposts as $lastpost) : $entry = ($ttype == 'pub') ? date_i18n('U', strtotime($lastpost->post_date)) : date_i18n('U', strtotime($lastpost->post_modified)); $interval = date('U', ($today - $entry)) / (60 * 60 * 24); if(intval($term) > $interval){ $last_post_ids[] = $lastpost->ID; } endforeach; if(count($last_post_ids) > 0){ if($vtype == 'str'){ $retstr = $value; } else{ $retstr = count($last_post_ids); } } } wp_reset_query(); if($retstr != '') 반환 $retstr; } add_shortcode('addnew', 'addnew'); [/php]

"Shortcode Exec PHP" 플러그인에 가져오고 싶으시다면, 위 소스 코드의 2~38행을 복사하거나 관리자 화면에서 이 XML 파일을 가져오시기 바랍니다(*이 파일은 "addnew"라는 이름으로 가져오므로, 이미 같은 이름의 단축코드가 있다면 덮어쓰기 됩니다. 참고하세요).
아래에 단축코드를 사용하는 방법의 예시가 나와 있습니다.

  1. 게시일로부터 7일 이내의 게시물이 포함된 지정된 카테고리에는 "새 글"이 표시됩니다.

    [코드 lang="html" light="true"]

  2. 카테고리 이름[addnew slug="category slug name"]
  3. [/코드]

  4. 지정된 카테고리에 게시일로부터 7일 이내의 게시물이 포함되어 있다면, 굵은 글씨로 "**NEW!"**를 표시하세요. [코드 lang="html" light="true"]

  5. 카테고리 이름 [addnew slug="카테고리 slug name"]NEW! [/addnew]
  6. [/코드]

  7. 지정된 카테고리에서 3일 이내에 마지막으로 업데이트된 게시물 수를 표시하세요.

    [코드 lang="html" light="true"]

  8. 카테고리 이름 [addnew slug="category slug name" ttype="mod" term="3" vtype="num"][/addnew]
  9. [/코드]

  10. 게시일로부터 5일 이내의 게시물이 포함된 카테고리 링크 표시

    [코드 lang="html" light="true"] [addnew slug="slug name of category" ttype="pub" term="5" vtype="str"]

  11. 카테고리 이름
  12. [/addnew] [/code]

  13. 지정된 카테고리에 7일 이내에 마지막으로 업데이트된 게시물이 포함되어 있다면, SPAN 태그를 삽입하여 링크 앞에 숫자 아이콘을 표시합니다.

    [코드 lang="html" light="true"] [addnew slug="category slug name" ttype="mod" vtype="str"] [addnew slug="category slug name" vtype="num"] [/addnew]카테고리 이름 [/code]

단축코드를 중첩할 수 있어서, 사용 방식에 따라 다양한 상황에서 사용할 수 있다고 생각합니다.

<

p style="text-indent:1em;"> 사이드바와 같은 위젯에서 단축코드를 사용하고 싶다면, 사용 중인 테마 function.php에 다음 코드를 추가해 주세요.
[PHP Light="true"] add_filter('widget_text', 'do_shortcode'); [/php]

Related Articles