wordpress常用的代码优化改造

将代码填入wordpress主题的functions.php文件中即可

WordPress 设置图片的默认显示方式(尺寸/对齐方式/链接到)

/**
     * WordPress 设置图片的默认显示方式(尺寸/对齐方式/链接到)
     * 
     */
     
    add_action( 'after_setup_theme', 'default_attachment_display_settings' );
    function default_attachment_display_settings() {
    	update_option( 'image_default_align', 'center' );//居中显示
    //	update_option( 'image_default_size', 'thumbnail' );//中等尺寸
    //update_option( 'image_default_link_type', 'file' );//连接到媒体文件本身
    }

 

自定义问答页面的固定链接结构为 id.html(问答插件DW Question)

/**
 * 自定义问答页面的固定链接结构为 id.html
*/
add_filter('post_type_link', 'custom_qa_link', 1, 3);
function custom_qa_link( $link, $post = 0 ){
	if ( $post->post_type == 'dwqa-question' ){
		return home_url( 'question/' . $post->ID .'.html' );
	} else {
		return $link;
	}
}
add_action( 'init', 'custom_qa_rewrites_init' );
function custom_qa_rewrites_init(){
	add_rewrite_rule(
		'question/([0-9]+)?.html$',
		'index.php?post_type=dwqa-question&p=$matches[1]',
		'top' );
} 

添加后,如果访问问答页面出现 404 错误,请访问 WP 后台 – 设置 – 固定链接,保存一遍这里的设置即可。如果还不行,很可能是你的主机不支持伪静态,请联系你的主机商。

插件调用问题列表代码,放到插件文件templates中single-question.php中调用

<hr><b><div style=" display:flex;justify-content:center;"><a href="https://www.shangan100.com/ask-questions/" class="scbutton red">提出问题</a></b></div>
	<div id="zm_yyz">
	<div style="float:left;">【热门问题列表】
    <?php
    $instance = wp_parse_args( $instance, array(
    'title' => __('Popular Questions','dwqa'),
    'number' => 10  //调用的多少条
    ) );
    $args = array(
    'posts_per_page' => $instance['number'],
    'order' => 'DESC',
    'orderby' => 'meta_value_num',
    'meta_key' => '_dwqa_views',
    'post_type' => 'dwqa-question',
    'suppress_filters' => false
    );
    $questions = new WP_Query( $args );
    while( $questions->have_posts() ) { $questions->the_post(); ?>
    <li><a href="<?php the_permalink(); ?>" title="<?php the_title();?>"><?php the_title();?></a></li>
    <?php } wp_reset_query();?></div>
      <div style="float:left;" margin-right:30px;>【最新问题列表】
    <?php
    $instance = wp_parse_args( $instance, array(
    'title' => __('Latest Questions','dwqa'),
    'number' => 10  //调用的多少条
    ) );
    $args = array(
    'posts_per_page' => $instance['number'],
    'order' => 'DESC',
    'orderby' => 'post_date',
    'post_type' => 'dwqa-question',
    'suppress_filters' => false
    );
    $questions = new WP_Query( $args );
    while( $questions->have_posts() ) { $questions->the_post(); ?>
    <li><a href="<?php the_permalink(); ?>" title="<?php the_title();?>"><?php the_title();?></a></li>
    <?php } wp_reset_query();?></div>
    <div style="float:left;">【随机问答列表】
    <?php
    $instance = wp_parse_args( $instance, array(
    'title' => __('Latest Questions','dwqa'),
    'number' => 10  //调用的多少条
    ) );
    $args = array(
    'posts_per_page' => $instance['number'],
    'order' => 'DESC',
    'orderby' => 'rand',
    'post_type' => 'dwqa-question',
    'suppress_filters' => false
    );
    $questions = new WP_Query( $args );
    while( $questions->have_posts() ) { $questions->the_post(); ?>
    <li><a href="<?php the_permalink(); ?>" title="<?php the_title();?>"><?php the_title();?></a></li>
    <?php } wp_reset_query();?></div>
     <div style="float:left;">【随机问答列表】
    <?php
    $instance = wp_parse_args( $instance, array(
    'title' => __('Latest Questions','dwqa'),
    'number' => 10  //调用的多少条
    ) );
    $args = array(
    'posts_per_page' => $instance['number'],
    'order' => 'DESC',
    'orderby' => 'rand',
    'post_type' => 'dwqa-question',
    'suppress_filters' => false
    );
    $questions = new WP_Query( $args );
    while( $questions->have_posts() ) { $questions->the_post(); ?>
    <li><a href="<?php the_permalink(); ?>" title="<?php the_title();?>"><?php the_title();?></a></li>
    <?php } wp_reset_query();?></div>
    </div>

 

wordpress文章图片自动添加alt和title属性

//文章图片自动添加alt和title属性
function image_alt_tag($content){
global $post;preg_match_all('/<img (.*?)\/>/', $content, $images);
if(!is_null($images)) {foreach($images[1] as $index => $value)
{$new_img = str_replace('<img', '<img alt="'.get_the_title().'" title="'.get_the_title().'"', $images[0][$index]);
$content = str_replace($images[0][$index], $new_img, $content);}}
return $content;
}
update_option('image_default_link_type', 'file');
add_filter('the_content', 'image_alt_tag', 99999); 

WordPress 设置图片的默认显示方式(尺寸/对齐方式/链接到)

/**
     * WordPress 设置图片的默认显示方式(尺寸/对齐方式/链接到)
     * 
     */
     
    add_action( 'after_setup_theme', 'default_attachment_display_settings' );
    function default_attachment_display_settings() {
    	update_option( 'image_default_align', 'center' );//居中显示
    update_option( 'image_default_size', 'thumbnail' );//中等尺寸
    update_option( 'image_default_link_type', 'file' );//连接到媒体文件本身
    }

WordPress 自动为文章添加已使用过的标签

// WordPress 自动为文章添加已使用过的标签
function array2object($array) { // 数组转对象
  if (is_array($array)) {
    $obj = new StdClass();
    foreach ($array as $key => $val){
      $obj->$key = $val;
    }
  }
  else {
    $obj = $array;
  }
  return $obj;
}
function object2array($object) { // 对象转数组
  if (is_object($object)) {
    foreach ($object as $key => $value) {
      $array[$key] = $value;
    }
  }
  else {
    $array = $object;
  }
  return $array;
}
add_action('save_post', 'auto_add_tags');
function auto_add_tags(){
  $tags = get_tags( array('hide_empty' => false) );
  $post_id = get_the_ID();
  $post_content = get_post($post_id)->post_content;
  if ($tags) {
    $i = 0;
    $arrs = object2array($tags);shuffle($arrs);$tags = array2object($arrs);// 打乱顺序
    foreach ( $tags as $tag ) {
    // 如果文章内容出现了已使用过的标签,自动添加这些标签
      if ( strpos($post_content, $tag->name) !== false){
        if ($i == 5) { // 控制输出数量
          break;
        }
        wp_set_post_tags( $post_id, $tag->name, true );
        $i++;
      }
    }
  }
}

自动为文章内的TAG标签添加内链

/* 自动为文章内的标签添加内链 */
$match_num_from = 1; //一篇文章中同一个标签少于几次不自动链接
$match_num_to = 1; //一篇文章中同一个标签最多自动链接几次
function tag_sort($a, $b){
        if ( $a->name == $b->name ) return 0;
        return ( strlen($a->name) > strlen($b->name) ) ? -1 : 1;
}
function tag_link($content){
        global $match_num_from,$match_num_to;
                $posttags = get_the_tags();
                if ($posttags) {
                        usort($posttags, "tag_sort");
                        foreach($posttags as $tag) {
                                $link = get_tag_link($tag->term_id);
                                $keyword = $tag->name;
                                $cleankeyword = stripslashes($keyword);
                                $url = "<a href=\"$link\" title=\"".str_replace('%s',addcslashes($cleankeyword, '$'),__('%s'))."\"";
                                $url .= ' target="_blank"';
                                $url .= ">".addcslashes($cleankeyword, '$')."</a>";
                                $limit = rand($match_num_from,$match_num_to);
                                $content = preg_replace( '|(<a[^>]+>)(.*)('.$ex_word.')(.*)(</a[^>]*>)|U'.$case, '$1$2%&&&&&%$4$5', $content);
                                $content = preg_replace( '|(<img)(.*?)('.$ex_word.')(.*?)(>)|U'.$case, '$1$2%&&&&&%$4$5', $content);
                                $cleankeyword = preg_quote($cleankeyword,'\'');
                                $regEx = '\'(?!((<.*?)|(<a.*?)))('. $cleankeyword . ')(?!(([^<>]*?)>)|([^>]*?</a>))\'s' . $case;
                                $content = preg_replace($regEx,$url,$content,$limit);
                                $content = str_replace( '%&&&&&%', stripslashes($ex_word), $content);
                        }
                }
        return $content;
}
add_filter('the_content','tag_link',1);

移除谷歌字体链接

function aivewp_remove_open_sans_from_wp_core() {
    wp_deregister_style( 'open-sans' );
    wp_register_style( 'open-sans', false );
    wp_enqueue_style('open-sans','');
}
add_action( 'init', 'aivewp_remove_open_sans_from_wp_core' );

分类目录加斜杠

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 API 方式自动推送

//WordPress 神马 MIP 数据提交代码
add_action('save_post', 'fanly_sm_mip_add', 10, 3);
function fanly_sm_mip_add($post_id, $post, $update){
  if($post->post_status != 'publish') return;
  $api = 'XXXXX';
  //请到神马站长平台 http://zhanzhang.sm.cn/open/mip 中复制接口调用地址过来即可
  $response = wp_remote_post($api, array(
    'headers' => array('Accept-Encoding'=>'','Content-Type'=>'text/plain'),
    'sslverify' => false,
    'blocking' => false,
    'body' => get_permalink($post_id)
  ));
}
// WordPress API 方式自动推送到百度熊掌号*

if(!function_exists('Baidu_XZH_Submit')){
    function Baidu_XZH_Submit($post_ID) {
        //已成功推送的文章不再推送
        if(get_post_meta($post_ID,'BaiduXZHsubmit',true) == 1) return;
        $url = get_permalink($post_ID);
        $api = 'XXXXXX';//请到百度站长平台 https://ziyuan.baidu.com/中复制接口调用地址过来即可
        $request = new WP_Http;
        $result = $request->request( $api , array( 'method' => 'POST', 'body' => $url , 'headers' => 'Content-Type: text/plain') );
        $result = json_decode($result['body'],true);
        //如果推送成功则在文章新增自定义栏目BaiduXZHsubmit,值为1
        if (array_key_exists('success',$result)) {
            add_post_meta($post_ID, 'BaiduXZHsubmit', 1, true);
        }
    }
    add_action('publish_post', 'Baidu_XZH_Submit', 0);
}

后台文章显示ID

add_filter('manage_posts_columns', 'posts_columns_id', 5);
add_action('manage_posts_custom_column', 'posts_custom_id_columns', 5, 2);
add_filter('manage_pages_columns', 'posts_columns_id', 5);
add_action('manage_pages_custom_column', 'posts_custom_id_columns', 5, 2);

function posts_columns_id($defaults){
    $defaults['wps_post_id'] = __('ID');
    return $defaults;
}
function posts_custom_id_columns($column_name, $id){
        if('wps_post_id' === $column_name){
                echo $id;
    }
}

 

版权声明:
微信公众号:上岸联萌(免费发布公职类相关考试资料/公告,行测公基每日刷题,打卡~)
标题:《wordpress常用的代码优化改造》
链接:https://www.shangan100.com/onepiece/108.html
本站部分内容转载自网络公开资料,文章版权归作者所有,未经允许请勿转载,如有侵权联系删除。
THE END
分享
二维码
打赏
海报
wordpress常用的代码优化改造
将代码填入wordpress主题的functions.php文件中即可 WordPress 设置图片的默认显示方式(尺寸/对齐方式/链接到) /** * WordPress 设置图片的默认显示方……
<<上一篇
下一篇>>
文章目录
关闭
目 录