给文章图片自动添加alt和title信息

//给文章图片自动添加alt和title信息
add_filter('the_content', 'imagesalt');
function imagesalt($content) {
 global $post;
 $pattern ="/<a(.*?)href=('|\")(.*?).(bmp|gif|jpeg|jpg|png)('|\")(.*?)>/i";
 $replacement = '<a$1href=$2$3.$4$5 alt="'.$post->post_title.'" title="'.$post->post_title.'"$6>';
 $content = preg_replace($pattern, $replacement, $content);
 return $content;
}
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().'"', $images[0][$index]);
 $content = str_replace($images[0][$index], $new_img, $content);}}
 return $content;
}
add_filter('the_content', 'image_alt_tag', 99999);

域名备案解析停滞

河南金润环保科技有限公司域名解析地址记录:118.193.210.154

备案开始2016年10月11日

备案结束2016年10月25日

2016年10月26日 网站转移至阿里云


 

郑州茂祥机械有限公司域名解析地址记录:45.127.127.121

备案开始2016年10月21日

备案结束2016年10月29日


 

巩义市盛飞机械设备有限公司

备案开始2017年02月20日

wordpress标题的截取

我们都知道用<?php the_title(); ?>来获取完整的标题,可是有时候为了页面的美观或者说是页面的整齐我们很有必要限制wp标题字数。

201304558

<?php echo wp_trim_words( get_the_title(), 18 ); ?>

以上代码中的18为你所需要的标题显示的字数。


如果你是做网站的,那么用css控制也无妨。

wordpress给文章添加浏览次数统计功能

1.在主题的 functions.php文件的最后一个 ?> 前面添加下面的代码:

//postviews 
function get_post_views ($post_id) { 
 
 $count_key = 'views'; 
 $count = get_post_meta($post_id, $count_key, true); 
 
 if ($count == '') { 
 delete_post_meta($post_id, $count_key); 
 add_post_meta($post_id, $count_key, '0'); 
 $count = '0'; 
 } 
 
 echo number_format_i18n($count); 
 
} 
 
function set_post_views () { 
 
 global $post; 
 
 $post_id = $post -> ID; 
 $count_key = 'views'; 
 $count = get_post_meta($post_id, $count_key, true); 
 
 if (is_single() || is_page()) { 
 
 if ($count == '') { 
 delete_post_meta($post_id, $count_key); 
 add_post_meta($post_id, $count_key, '0'); 
 } else { 
 update_post_meta($post_id, $count_key, $count + 1); 
 } 
 
 } 
 
} 
add_action('get_header', 'set_post_views');

2.在需要显示该统计次数的地方使用下面的代码调用:

<?php get_post_views($post -> ID); ?>

非插件实现WordPress分页导航

越少的使用插件,却能让使用者完全体验到主题的各项功能,才是真正好的主题,这也是所有主题设计者应考虑的问题,网上不使用插件实现WordPress功能的文章也很多,今天分享一下不使用插件实现分页功能的函数代码。

WordPress默认分页功能很弱,一页页翻,弄到你手麻,所以类似wp-pagenavi翻页插件,几乎是WordPress博客必装的插件,也是普及率很高的一款插件。

虽然网上有如何把wp-pagenavi插件集成到WordPress主题的教程,但wp-pagenavi插件函数代码拖沓,只是变相启用插件而已,并没有真正脱离wp-pagenavi插件。下面一段轻量级的函数,加上寥寥数行css样式就可以完全替代分页插件了。实例参考本站。

具体实现方法:

首先将下面一段函数代码添加到主题的functions.php模板文件中:

function par_pagenavi($range = 9){
global $paged, $wp_query;
if ( !$max_page ) {$max_page = $wp_query->max_num_pages;}
if($max_page > 1){if(!$paged){$paged = 1;}
if($paged != 1){echo "<a href='" . get_pagenum_link(1) . "' class='extend' title='跳转到首页'> 返回首页 </a>";}
previous_posts_link(' 上一页 ');
if($max_page > $range){
if($paged < $range){for($i = 1; $i <= ($range + 1); $i++){echo "<a href='" . get_pagenum_link($i) ."'";
if($i==$paged)echo " class='current'";echo ">$i</a>";}}
elseif($paged >= ($max_page - ceil(($range/2)))){
for($i = $max_page - $range; $i <= $max_page; $i++){echo "<a href='" . get_pagenum_link($i) ."'";
if($i==$paged)echo " class='current'";echo ">$i</a>";}}
elseif($paged >= $range && $paged < ($max_page - ceil(($range/2)))){
for($i = ($paged - ceil($range/2)); $i <= ($paged + ceil(($range/2))); $i++){echo "<a href='" . get_pagenum_link($i) ."'";if($i==$paged) echo " class='current'";echo ">$i</a>";}}}
else{for($i = 1; $i <= $max_page; $i++){echo "<a href='" . get_pagenum_link($i) ."'";
if($i==$paged)echo " class='current'";echo ">$i</a>";}}
next_posts_link(' 下一页 ');
if($paged != $max_page){echo "<a href='" . get_pagenum_link($max_page) . "' class='extend' title='跳转到最后一页'> 最后一页 </a>";}}
}

第一种样式

添加下面的css样式到你的 style.css中

.page_navi{overflow:hidden;width:100%;text-align:center}
.page_navi a{height:36px;border:1px solid #DDD;-webkit-border-radius:12px;-moz-border-radius:12px;border-radius:12px;color:#888;text-decoration:none;line-height:36px;margin:2px;padding:3px 8px}
.page_navi a:hover,.page_navi a.current{border:1px solid #FFBB76;color:#FF7200;font-weight:bolder}

在需要显示的地方(比如主题的 index.php、archive.php、category.php、search.php)中添加下面的调用代码即可

<div class="page_navi"><?php par_pagenavi(9); ?></div>

上面的数字表示最大显示几页,你可以根据自己的需要修改。

第二种样式

添加下面的css样式到你的 style.css中

.wpagenavi{ margin:0 auto; padding-top:25px; width:100%; line-height:40px; font-family:"宋体"; border-top:1px solid #E4E4E4; text-align:center;}
.wpagenavi a:link, .wpagenavi a:visited{ margin:0 4px; padding:12px 16px; color:#666; background:#E4E4E4; -moz-border-radius:3px; -webkit-border-radius:3px; border-radius:3px; -webkit-transition:color 0.4s ease; -moz-transition:color 0.4s ease; -o-transition:color 0.4s ease; -ms-transition:color 0.4s ease; transition: color 0.4s ease;}
.wpagenavi a:hover, .wpagenavi a:active{ color:#FFF; background:#436BB8; text-decoration:none;}
.wpagenavi a.current:link, .wpagenavi a.current:visited, .wpagenavi a.current:hover{ color:#FFF; background:#436BB8; font-weight:bold;}

调用方法:

<div class="wpagenavi"><?php par_pagenavi(9); ?></div>

关闭wordpress评论ping通告功能

当你在页面B中使用文本链接到页面A的时候,页面A的下方评论框中会出现ping 通告,另外在后台评论中也会出现这样的通告,如果你不批准每次打开后台都会显示通告的小图片。如图:

20160724142759

在企业网站中这些功能显然有些鸡肋,那么如何让后台不在显示这样的通知?

登陆phpMyAdmin数据库,运行如下命令:

UPDATE `wp_posts` SET ping_status="closed";

 

wordpress上传图片自动重命名

不知从哪个版本开始,wp 上传图片支持中文命名。但还是感觉有些不习惯,记得之前上传的中文图片不知是什么原因用FTP下载之后命名全部中文乱码,网站图片全挂 – -!~ 为了避免这样的现象再次发生,那么自动重命名网站图片显得格外重要。

方法一:上传的图片由系统自动生成的一个32位的MD5加密文件名,由于默认生成的32位文件名有点长,所以使用substr(md5($name), 0, 20) 截断将其设置为20位。

生成的文件名称如:2ba0b99abec8c19b66d7.jpg  代码如下:

function rename_filename($filename) {
	$info = pathinfo($filename);
	$ext = empty($info['extension']) ? '' : '.' . $info['extension'];
	$name = basename($filename, $ext);
	return substr(md5($name), 0, 20) . $ext;
}
add_filter('sanitize_file_name', 'rename_filename', 10);

调用父级栏目下的子类 以及子类下的最新6篇文章

非插件实现wp分类目录排序一文中,我们已经看到了该功能的身影。想要实现此功能在functions.php添加以下代码:

function zixieme_cat($cat_id){
 $args = array(
 'child_of' => $cat_id,
 'hide_empty'=>1,
 'meta_key' => '_term_order',
 'orderby' => 'meta_value_num'
 );
 $categories = get_categories($args);
 foreach($categories as $category) {
 echo '<ul class="piclist">';
 echo '<h3 class="title"><a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.' </a></h3>';
 echo get_posts_by_cat($category->term_id,6);
 echo '</ul>';
 }
}
function get_posts_by_cat($cat,$cat_number=6){
 $the_query = new WP_Query( array( 
 'cat' => $cat, 
 'posts_per_page' => $cat_number,
 'order' => ASC
 ) );
 $output_post = '';
 if ( $the_query->have_posts() ){
 while ( $the_query->have_posts() ){
 $the_query->the_post();
 $output_post .='<li><a href="' .get_permalink(). '">' . get_the_title() . '</a></li>';
 }
 }
 wp_reset_postdata();
 return $output_post;
}

调用代码:其中3为父级分类目录的ID

<?php zixieme_cat(3); ?>

zixieme通用主题调用方法:

<?php if (zixieme('products_show')) { $products_show = zixieme('products_show'); ?>
 <h2>
  <a href="<?php echo get_category_link($products_show);?>"><?php echo get_cat_name( $products_show ); ?></a>
 </h2>
 <?php zixieme_cat($products_show); ?>
<?php } ?>

非插件实现wordpress分类目录排序

使用wordpress建站时,经常会用到各种各样的插件实现某些功能来提高网站的逼格。插件使用过多给网站带的负面影响这里就不说了。也许大多数朋友和我一样面临同样的问题wp分类目录的重新排序,那么跟着本文的教程一起去解决问题吧!!

wp分类目录重新排序
wp分类目录重新排序

方法一:文章分类目录排序插件

插件名:Category Order and Taxonomy Terms Order

插件地址:https://wordpress.org/plugins/taxonomy-terms-order/

方法二:非插件实现wordpress分类目录排序

1、添加分类项目自定义字段输入表单

首先,我们需要添加一个分类项目自定义字段输入表单,添加后,在编辑分类项目的时候,我们会看到如下图中的分类排序输入字段。根据我们的排序需求,从小到大输入数字就可以了。

term-meta-order

/**
 * 分类项目排序字段
 *
 * @param Term Object $term
 * @param string $taxonomy
 */
add_action( 'category_edit_form_fields', 'term_order_field', 10, 2 );
function term_order_field( $term, $taxonomy ) {
 ?>
 <table class="form-table">
 <tbody>
 <tr class="form-field">
 <th scope="row" valign="top">
 <label for="meta-order"><?php _e( '排序' ); ?></label>
 </th>
 <td>
 <input type="text" name="_term_order" size="3" style="width:10%;" value="<?= get_term_meta( $term->term_id, '_term_order', true ); ?>"/>
 </td>
 </tr>
 </tbody>
 </table>
<?php
}
/**
 * 保存排序
 *
 * @param int $term_id
 */
add_action( 'edited_category', 'save_term_order' );
function save_term_order( $term_id ) {
 update_term_meta( $term_id, '_term_order', $_POST[ '_term_order' ] );
}

2、调用分类项目时使用自定义字段进行排序

在前端调用分类列表的时候就非常方便了,给 term_terms 函数传入一个包含自定义字段名称、排序方法为 meta_value_num 的数组就可以了。

$args = [
 'meta_key' => '_term_order',
 'orderby' => 'meta_value_num',
];
$terms = get_terms( 'category', $args );

如果有需要,我们还可以通过 manage_category_custom_column 函数把排序序号在后台的分类列表中显示出来,可以更直观方便的看到分类项目的排序。

wordpress用特色图片制作幻灯片

当我们用WordPress做一个企业网站时,类似下图的这种的幻灯片展示的功能是比不可少的,首先得获取到最近的几张特色图像(也可以称为缩略图)和它所在的文章标题。本文将教你如何从WordPress的数据库中读取到你想要的数据。

20160721153944

WordPress的特色图像数据主要保存在自定义栏目 _thumbnail_id 中,这个_thumbnail_id与一篇文章的id对应,构成一个映射关系,通过这个映射可以获取到这个特色图像的地址和文章标题等信息。下面的php代码用于输出最近5篇特色图像的HTML代码,通过这些HTML,你可以在此基础上添加JS、CSS代码以达到幻灯片的效果。

以下代码可能并不能适用于你的项目,但是可以作为参考,通过一些修改,就可以达到你的目的啦。

<ul>
<?php
    $arr = array('meta_key' => '_thumbnail_id',
                'showposts' => 5,        // 显示5个特色图像
                'posts_per_page' => 5,   // 显示5个特色图像
                'orderby' => 'date',     // 按发布时间先后顺序获取特色图像,可选:'title'、'rand'、'comment_count'等
                'ignore_sticky_posts' => 1,
                'order' => 'DESC');

    $slideshow = new WP_Query($arr);
    if ($slideshow->have_posts()) {
        $postCount = 0;
        while ($slideshow->have_posts()) {
            $slideshow->the_post();
?>
    <li>
        <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
        <?php
            // 获取特色图像的地址
            $timthumb_src = wp_get_attachment_image_src( get_post_thumbnail_id(get_the_ID()) );
            echo '<img border="0" alt="' . get_the_title() . '" src="' . $timthumb_src[0] . '" /> ';
        ?>
        </a>
    </li>
<?php
        } // endwhile
        wp_reset_postdata();
    } // endif
?>
</ul>

以上php代码输出的html代码类似:

<ul>
 <li>
 <a href="http://example.com/a" title="aaa">
 <img border="0" alt="aaa" src="http://example.com/mala.jpg" /> ';
 </a>
 </li>
 <li>
 <a href="http://example.com/c" title="ccc">
 <img border="0" alt="ccc" src="http://example.com/ditie.jpg" /> ';
 </a>
 </li>
...
</ul>

如何支持page页面特色图片的调用?


‘ignore_sticky_posts’ => 1,
改成
‘ignore_sticky_posts’ => 1,’post_type’ => array( ‘post’, ‘page’ ),

1 2 3 8