Wordpress小技巧(一)

​★★★ Wordpress发表Post文章时,页面会出现评论框,如何禁止出现评论框。步骤如下:

一.使用wordpress的后台功能关闭文章评论依次进入"后台"—"设置"—"讨论",会出现下图所示设置页面:

二.主要就是上图中的两个选项了,如果想关闭全站评论就把那个自动关闭发布**天以后的文章评论,并把时间设置为0并打上勾。如果想关闭最新文章的评论就把第一个勾去掉。

 

★★★ 禁止wordpress上传图片时生成多余的缩略图:
1.在外观编辑里找到function.php文件或者在服务器下查找xx.com/wp-content/thems/xx主题/function.php.
2.打开function.php,查找add_theme_support,并注销。

 

3.继续查找add_image_size,并注销。

4.打开后台设置-多媒体,设置为下图所示,保存修改即可。

 

★★★查看站点时,会出现下面的现象:

 

解决方法是:打开后台-user-edit

去掉✔就可以啦。

★★★ 如何批量开启,关闭文章评论。

如果需要批量设置wordpress文章的评论选项,在phpmyadmin或者mysql命令行里运行sql语句即可:
批量关闭文章评论:
UPDATE `wp_posts` SET `comment_status` = 'closed' WHERE `wp_posts`.`ID` >1;
复制代码
批量开启文章评论:
UPDATE `wp_posts` SET `comment_status` = 'open' WHERE `wp_posts`.`ID` >1;
运行以上语句即可批量设置wordpress文章是否允许评论

★★★ 如何打开wordpress的评论框

在想打开的模板文件中输入<?php comment_form(); ?>即可调用wordpress的评论框

可以查看具体评论框开发https://www.wpdaxue.com/wordpress-comment_form.html

★★★ 阻止垃圾评论

五种防垃圾评论介绍:

https://www.freehao123.com/wordpress-spam/

 

// 垃圾评论拦截

class anti_spam {

function anti_spam() {

if ( !current_user_can('level_0') ) {

add_action('template_redirect', array($this, 'w_tb'), 1);

add_action('init', array($this, 'gate'), 1);

add_action('preprocess_comment', array($this, 'sink'), 1);

}

}

function w_tb() {

if ( is_singular() ) {

ob_start(create_function('$input','return preg_replace("#textarea(.*?)name=([\"\'])comment([\"\'])(.+)/textarea>#",

"textarea$1name=$2w$3$4/textarea><textarea name=\"comment\" cols=\"100%\" rows=\"4\" style=\"display:none\"></textarea>",$input);') );

}

}

function gate() {

if ( !empty($_POST['w']) && empty($_POST['comment']) ) {

$_POST['comment'] = $_POST['w'];

} else {

$request = $_SERVER['REQUEST_URI'];

$referer = isset($_SERVER['HTTP_REFERER'])   ? $_SERVER['HTTP_REFERER']         : '隐瞒';

$IP      = isset($_SERVER["HTTP_X_FORWARDED_FOR"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] . ' (透过D理)' : $_SERVER["REMOTE_ADDR"];

$way     = isset($_POST['w'])      ? '手动操作'      : '未经评论表格';

$spamcom = isset($_POST['comment'])     ? $_POST['comment']     : null;

$_POST['spam_confirmed'] = "请求: ". $request. "\n来路: ". $referer. "\nIP: ". $IP. "\n方式: ". $way. "\n內容: ". $spamcom. "\n -- 记录成功 --";

}

}

function sink( $comment ) {

if ( !empty($_POST['spam_confirmed']) ) {

if ( in_array( $comment['comment_type'], array('pingback', 'trackback') ) ) return $comment;

//方法一: 直接挡掉, 將 die(); 前面两斜线刪除即可.

//die();

//方法二: 标记为 spam, 留在资料库检查是否误判.

add_filter('pre_comment_approved', create_function('', 'return "spam";'));

$comment['comment_content'] = "[ 判断这是 Spam! ]\n". $_POST['spam_confirmed'];

}

return $comment;
}
}
$anti_spam = new anti_spam();  

★★★ wordpress调取tag描述

<?php echo tag_description(); ?> 
// 分页

require get_template_directory() . '/inc/functions/pagenavi.php';

// 分页

function ality_page_nav( ) {

global $wp_query;

if ( $wp_query->max_num_pages > 1 ) : ?>

<nav id="nav-below">

<div><?php previous_posts_link( 上一页 ); ?></div>

<div><?php next_posts_link( 下一页 ); ?></div>

</nav>

<?php endif;

}

Function.php函数

<?php

function pagenavi( $before = '', $after = '', $p = 3 ) {

if ( is_singular() ) return;

global $wp_query, $paged;

$max_page = $wp_query->max_num_pages;

if ( $max_page == 1 ) return;

if ( empty( $paged ) ) $paged = 1;

echo $before.'<nav id="pagenavi">'."\n";

if ( $paged > 1 ) p_link( $paged - 1, '上页', '上页' );

if ( $paged > $p + 1 ) p_link( 1, '第一页' );

if ( $paged > $p + 2 ) echo '<span>...</span>';

for( $i = $paged - $p; $i <= $paged + $p; $i++ ) {

if ( $i > 0 && $i <= $max_page ) $i == $paged ? print "<span class='page-numbers current'>{$i}</span>" : p_link( $i );

}

if ( $paged < $max_page - $p - 1 ) echo '<span>...</span>';

if ( $paged < $max_page - $p ) p_link( $max_page, '最后一页' );

if ( $paged < $max_page ) p_link( $paged + 1,'下页', '下页' );

echo '</nav>'.$after."\n";

}

function p_link( $i, $title = '', $linktype = '' ) {

if ( $title == '' ) $title = "第 {$i} 页";

if ( $linktype == '' ) { $linktext = $i; } else { $linktext = $linktype; }

echo "<a href='", esc_html( get_pagenum_link( $i ) ), "' title='{$title}'>{$linktext}</a>";

}

?>  

★★★ wordpress给分类目录添加自定义字段,写在function.php文件中 

//自定义字段

global $texonomy_slug_keywords;

$texonomy_slug_keywords='category';

add_action($texonomy_slug_keywords.'_add_form_fields','categorykeywords');

function categorykeywords($taxonomy){ ?>

<div>

<label for="tag-keywords">分类关键词</label>

<input type="text" name="tag-keywords" id="tag-keywords" value="" /><br /><span>请在此输入分类关键词。</span>

</div>

<?php }

add_action($texonomy_slug_keywords.'_edit_form_fields','categorykeywordsedit');

function categorykeywordsedit($taxonomy){ ?>

<tr>

<th scope="row" valign="top"><label for="tag-keywords">关键词</label></th>

<td><input type="text" name="tag-keywords" id="tag-keywords" value="<?php echo get_option('_category_keywords'.$taxonomy->term_id); ?>" /><br /><span>请在此输入分类关键词。</span></td>

</tr>

<?php }

add_action('edit_term','categorykeywordssave');

add_action('create_term','categorykeywordssave');

function categorykeywordssave($term_id){

if(isset($_POST['tag-keywords'])){

if(isset($_POST['tag-keywords']))

update_option('_category_keywords'.$term_id,$_POST['tag-keywords'] );

}

}  
//分类标题

global $category_slug_title;

$category_slug_title='category';

add_action($category_slug_title.'_add_form_fields','categorytitle');

function categorytitle($category){ ?>

<div>

<label for="tag-title">分类标题</label>

<input type="text" name="tag-title" id="tag-title" value="" /><br /><span>请在此输入分类标题。</span>

</div>

<?php }

add_action($category_slug_title.'_edit_form_fields','categorytitleedit');

function categorytitleedit($category){ ?>

<tr>

<th scope="row" valign="top"><label for="tag-title">分类标题</label></th>

<td><input type="text" name="tag-title" id="tag-title" value="<?php echo get_option('_category_title'.$category->term_id); ?>" /><br /><span>请在此输入分类标题。</span></td>

</tr>

<?php }

add_action('edit_term','categorytitlesave');

add_action('create_term','categorytitlesave');

function categorytitlesave($term_id){

if(isset($_POST['tag-title'])){

if(isset($_POST['tag-title']))

update_option('_category_title'.$term_id,$_POST['tag-title'] );

}

}

★分类目录添加自定义字段,读取字段的值:写在模板文件中:content.php/singel.php

**title展示**

<?php if ( is_category() ) { $category_info = get_the_category();

$category_id = $category_info[0]->cat_ID;$cat_title = get_option('_category_title'.$category_id);?><title><?php echo $cat_title;?>| <?php bloginfo('name'); ?></title><?php } ?>

**keywords获取值**

<?php

if(is_category()){

$category_info = get_the_category();

$category_id = $category_info[0]->cat_ID;

$cat_keywords = get_option('_category_keywords'.$category_id);

?>

<meta name="keywords" content="<?php echo $cat_keywords;?>"/>

★★★ wordpress规范url :www.xxx.com/xxx/ 写在function.php函数中

function nice_trailingslashit($string, $type_of_url) {

    if ( $type_of_url != 'single' )

      $string = trailingslashit($string);

    return $string;

}

add_filter('user_trailingslashit', 'nice_trailingslashit', 10, 2);  

★★★WordPress 设置必须用户登录才能显示的隐藏内容

/***

    *WordPress 设置必须用户登录才能显示的隐藏内容

    *https://www.endskin.com/user-registered-display/

*/

function Bing_members_only_shortcode( $atts, $content = null ){

    if( is_user_logged_in() && !empty( $content ) && !is_feed() ) return $content;

    return __( '此内容必须登录才能查看', 'Bing' );

}

add_shortcode( 'members_only', 'Bing_members_only_shortcode' );  

在文章中使用简码(短代码)包裹起来要登录才能显示的内容:

[members_only]
此内容只能在登录后查看
[/members_only]

如果在 Feed 中则直不用登录也可以查看内容,如果你希望在 Feed 中无法插件此内容可以将一开始的代码替换成下边的:

1

2

3

4

5

6

7

8

9

/***

    *WordPress 设置必须用户登录才能显示的隐藏内容

    *Feed 中无法查看

    *https://www.endskin.com/user-registered-display/

*/

function Bing_members_only_shortcode( $atts, $content = null ){

    if( is_user_logged_in() && !empty( $content ) ) return $content;

    if( is_feed() ) return;

    return __( '此内容必须登录才能查看,Feed 中无法查看', 'Bing' );

}add_shortcode( 'members_only', 'Bing_members_only_shortcode' );

 

//隐藏部分内容

function login_to_read($atts, $content=null) {

extract(shortcode_atts(array("notice" => '

<span style="color: red;">温馨提示:</span>此处内容需要<a title="登录后可见" href="http://localhost/wordpress/wp-admin/">登录</a>后才能查看!

'), $atts));

if ( is_user_logged_in() && !is_null( $content ) && !is_feed() )

                return $content;

        return $notice;

}

add_shortcode('vip', 'login_to_read')

?>  

只用在html文本编辑框中填写[vip]内容[/vip]即可。

 ★★★★★★★★★ 

如果你的WordPress根目录没有robots.txt,当有人访问这个文件时,WordPress程序会动态生成一个robots.txt给用户,如果你自己上传自己编写的robots.txt到网站根目录,用户和爬虫访问的就是你的文件,WP就不会再生成那个文件了。服务器找不到那个文件的时候WP才会生成那个文件。

 

posted @ 2017-09-27 10:55  cheryshi  阅读(404)  评论(0编辑  收藏  举报