建站資源

適用於WordPress用戶的10個有用的代碼片段

注意事項!!!

正如您可能已經猜到的那樣,WordPress的代碼片段雖然確實有用,但往往會改變默認功能。每個摘錄都有少量誤差。通常,此類問題往往是由於不兼容的插件和/或主題而引起的,並且一旦您消除了所述主題/插件或決定不使用所述代碼段,這些問題往往就會消失。

但是,為了安全起見,在通過代碼段進行任何更改之前,請務必確保對WordPress網站進行了適當的備份。另外,如果遇到任何錯誤或性能問題。

1.允許貢獻者上傳圖像

默認情況下,WordPress不允許貢獻者帳戶上傳圖像。當然,您可以將該特定帳戶提升為“作者”或“編輯者”,給予他們上載和修改圖像的權利。但是,它還將授予他們其他權利,例如發布自己的文章的能力(相對於提交審核)。

如果使用此特定代碼可以允許貢獻者帳戶將圖像上傳到他們的文章,而無需授予他們任何其他特權或權利。將其粘貼到主題的functions.php文件中:

if ( current_user_can(‘contributor’) && !current_user_can(‘upload_files’) )
    add_action(‘admin_init’, ‘allow_contributor_uploads’);      
    function allow_contributor_uploads() {
         $contributor = get_role(‘contributor’);
         $contributor->add_cap(‘upload_files’);
    }

2.沒有安裝插件的情況下顯示熱門帖子

程序上是有點棘手。但是,如果您不太想安裝額外的插件來展示受歡迎的帖子(例如,您的服務器內存或磁盤空間有限),可以按照以下代碼片段進行操作。

將以下內容粘貼到functions.php中

function count_post_visits() {
   if( is_single() ) {
       global $post;
       $views = get_post_meta( $post->ID, ‘my_post_viewed’, true );
       if( $views == ” ) {
           update_post_meta( $post->ID, ‘my_post_viewed’, ‘1’ );   
       } else {
           $views_no = intval( $views );
           update_post_meta( $post->ID, ‘my_post_viewed’, ++$views_no );
       }
   }
}
add_action( ‘wp_head’, ‘count_post_visits’ );

然後將以下內容粘貼到您希望顯示受歡迎帖子的模板文件中的任何位置:

$popular_posts_args = array(
   ‘posts_per_page’ => 3,
   ‘meta_key’ => ‘my_post_viewed’,
   ‘orderby’ => ‘meta_value_num’,
   ‘order’=> ‘DESC’
);
$popular_posts_loop = new WP_Query( $popular_posts_args );
 while( $popular_posts_loop->have_posts() ):
   $popular_posts_loop->the_post();
   // Loop continues
endwhile;
wp_reset_query();

3.禁用WordPress中的搜索

WordPress的搜索功能已經存在很長時間了。但是,如果您的網站不需要它,或者由於某種原因您不希望用戶“搜索”您的網站,則可以使用此代碼段。

本質上,它是一個自定義函數,僅使搜索功能無效。不僅是邊欄或菜單中的搜索欄,還是原生WP搜索的整個概念都消失了。為什麼這會有用?同樣,如果您在低規格服務器上運行網站並且沒有需要搜索的內容(可能不是在運行博客),則可以提供幫助。

同樣,將其添加到functions.php文件中:

function fb_filter_query( $query, $error = true ) {
if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;
// to error
if ( $error == true )
$query->is_404 = true;
}
}
add_action( ‘parse_query’, ‘fb_filter_query’ );
add_filter( ‘get_search_form’, create_function( ‘$a’, “return null;” ) );

4.保護您的網站免受惡意請求

有多種方法可以保護您的網站。您可以安裝安全插件,打開防火牆或選擇免費功能(如Jetpack Protect)來阻止網站上的暴力攻擊。

以下代碼段(一旦放置在functions.php文件中)將拒絕所有惡意URL請求:

global $user_ID; if($user_ID) {
   if(!current_user_can(‘administrator’)) {
       if (strlen($_SERVER[‘REQUEST_URI’]) > 255 ||
           stripos($_SERVER[‘REQUEST_URI’], “eval(“) ||
           stripos($_SERVER[‘REQUEST_URI’], “CONCAT”) ||
           stripos($_SERVER[‘REQUEST_URI’], “UNION+SELECT”) ||
           stripos($_SERVER[‘REQUEST_URI’], “base64”)) {
               @header(“HTTP/1.1 414 Request-URI Too Long”);
               @header(“Status: 414 Request-URI Too Long”);
               @header(“Connection: Close”);
               @exit;
       }
   }
}

5.在沒有插件的情況下對您的網站進行分頁

良好的分頁對於允許用戶瀏覽您的網站非常有用。而不是“上一個”或“下一個”鏈接。這是我們的另一個WordPress代碼片段開始起作用的地方–它為您的內容增加了良好的分頁功能。

functions.php中

global $wp_query;
$total = $wp_query->max_num_pages;
// only bother with the rest if we have more than 1 page!
if ( $total > 1 )  {
    // get the current page
    if ( !$current_page = get_query_var(‘paged’) )
         $current_page = 1;
    // structure of “format” depends on whether we’re using pretty permalinks
    $format = empty( get_option(‘permalink_structure’) ) ? ‘&page=%#%’ : ‘page/%#%/’;
    echo paginate_links(array(
         ‘base’ => get_pagenum_link(1) . ‘%_%’,
         ‘format’ => $format,
         ‘current’ => $current_page,
         ‘total’ => $total,
         ‘mid_size’ => 4,
         ‘type’ => ‘list’
    ));
}

6.禁用管理欄

WordPress管理欄提供了一些關鍵功能的便捷鏈接,例如添加新帖子和頁面的功能等。但是,如果您發現它沒有用並希望刪除它,只需將以下代碼片段粘貼到您的functions.php中文件:

// Remove the admin bar from the front end
add_filter( ‘show_admin_bar’, ‘__return_false’ );

7.在RSS Feed中顯示發布縮略圖

如果您希望在博客的RSS feed中顯示帖子縮略圖,則以下WordPress的代碼段可能會有用。

將其放在您的functions.php文件中:

// Put post thumbnails into rss feed
function wpfme_feed_post_thumbnail($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = ” . $content;
}
return $content;
}
add_filter(‘the_excerpt_rss’, ‘wpfme_feed_post_thumbnail’);
add_filter(‘the_content_feed’, ‘wpfme_feed_post_thumbnail’);

8.更改作者永久鏈接結構

默認情況下,WordPress將作者資料顯示為yoursite.com/author/name。但是,您可以將其更改為您喜歡的任何內容,例如yoursite.com/writer/name

需要將以下代碼段粘貼到functions.php文件中。然後,將作者永久鏈接結構更改為“ / profile / name”:

add_action(‘init’, ‘cng_author_base’);
function cng_author_base() {
   global $wp_rewrite;
   $author_slug = ‘profile’; // change slug name
   $wp_rewrite->author_base = $author_slug;
}

9.自動鏈接到內容中的Twitter用戶名

如果您正在運行一個非常關注Twitter的網站(可能是病毒內容網站等),則此功能特別有用。以下functions.php的代碼片段將內容中的所有@提及內容轉換為各自的Twitter個人資料。

例如,您內容中的@happy提及將轉換為指向Twitter帳戶“ twitter.com/happy”的鏈接(“ happy”為用戶名):

function content_twitter_mention($content) {
return preg_replace(‘/([^a-zA-Z0-9-_&])@([0-9a-zA-Z_]+)/’, “$1<a href=\”http://twitter.com/$2\” target=\”_blank\” rel=\”nofollow\”>@$2</a>”, $content);
}
add_filter(‘the_content’, ‘content_twitter_mention’);   
add_filter(‘comment_text’, ‘content_twitter_mention’);

10.創建PAYPAL捐贈代碼

如果您使用PayPal捐贈功能接受網站訪問者的捐贈,則可以使用此代碼段創建代碼,從而使捐贈更加容易。首先,將以下內容粘貼到您的functions.php文件中:

function donate_shortcode( $atts, $content = null) {
global $post;extract(shortcode_atts(array(
‘account’ => ‘your-paypal-email-address’,
‘for’ => $post->post_title,
‘onHover’ => ”,
), $atts));
if(empty($content)) $content=’Make A Donation’;
return ‘<a href=”https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=’.$account.’&item_name=Donation for ‘.$for.'” title=”‘.$onHover.'”>’.$content.'</a>’;
}
add_shortcode(‘donate’, ‘donate_shortcode’);

然後,您可以輕鬆使用[捐贈]短代碼,例如:

[donate]My Text Here[/donate]

如何添加代碼段?

如每個代碼段所述,您只需要將所述代碼段添加到所需文件中即可。通常,您只需要將代碼段添加到functions.php文件中(在某些情況下,它可能會有所不同)。

如果您不滿意編輯主題文件怎麼辦?如果是這樣,我們這有一個方法可以幫助大家。代碼片段插件code snippets可以幫助您!

它是一個簡單的插件,可讓您在不進行任何手動文件編輯的情況下將代碼段添加到functions.php。它將代碼片段視為自己的單獨插件–您添加代碼並點擊保存…,其餘部分由代碼片段插件處理。

激活插件後,您將在“插件”下找到一個“摘要”菜單。前往摘要»添加新內容

WordPress的代碼片段

為您的代碼段添加一個名稱,將該代碼段粘貼到代碼區域中,然後提供描述以供您自己參考。完成後,激活代碼段,您就可以開始了!即使您更改主題,代碼段仍可正常運行。這樣,您可以添加和刪除代碼段,就像它們是帖子或頁面一樣,而無需完全編輯主題文件。

因此,您可以找到它,適用於WordPress的有用代碼段以及將它們全部添加的有用插件!得到了您喜歡的WordPress特殊代碼段?在下面的評論中分享!

原文在此:https://themeisle.com/blog/code-snippets-for-wordpress/

Similar Posts