'WordPress' 分类

撤离 Amazon EC2 令投新怀抱

上个月 被 Amazon 扣了15多刀,吖疼啊,得赶紧撤退走人。得得换换了,毕竟又是一年了。都说2014马上有。
采用 SSH 来迁移 WordPress 非常舒服,这不过在 EC2 上导出 MySQL 不是那么好搞,我应该没有忘记 MySQL 的 password,可就遇到了
mysqldump: Got error: 1045: Access denied for user 'ser=[xxx]'@'localhost' (using password: YES) when trying to connect

解决办法请参考这文章 http://www.tikalk.com/alm/solution-mysql-error-1045-access-denied-userlocalhost-breaks-openstack

WordPress 有文章发布后自动邮件通知

functions.php 文件下加入下面的代码,就可以实现当网站有了新内容发布后,即自动发送一个通知到邮箱中。
function email_members($post_ID) {
global $wpdb;
$usersarray = $wpdb->get_results("SELECT user_email FROM $wpdb->users;");
$users = implode(",", $usersarray);
mail($users, "WordPress 发布了新Post!", '有一篇叫啥的文章发布了,老大');
return $post_ID;
}

add_action('publish_post', 'email_members');

不用插件实现 WordPress “Related Post”

不用使用“Related Post”插件来是实现 WordPress 的相关文章下面2中种方法皆可实现:
1,在主题的functions.php里加入如下代码,并使用[related_posts]来调用
function related_posts_shortcode( $atts ) {
extract(shortcode_atts(array(
'limit' => '5',
), $atts));

global $wpdb, $post, $table_prefix;

if ($post->ID) {
$retval = '

    ';
    // Get tags
    $tags = wp_get_post_tags($post->ID);
    $tagsarray = array();
    foreach ($tags as $tag) {
    $tagsarray[] = $tag->term_id;
    }
    $tagslist = implode(',', $tagsarray);

    // Do the query
    $q = "SELECT p.*, count(tr.object_id) as count
    FROM $wpdb->term_taxonomy AS tt, $wpdb->term_relationships AS tr, $wpdb->posts AS p WHERE tt.taxonomy ='post_tag' AND tt.term_taxonomy_id = tr.term_taxonomy_id AND tr.object_id = p.ID AND tt.term_id IN ($tagslist) AND p.ID != $post->ID
    AND p.post_status = 'publish'
    AND p.post_date_gmt < NOW() GROUP BY tr.object_id ORDER BY count DESC, p.post_date_gmt DESC LIMIT $limit;"; $related = $wpdb->get_results($q);
    if ( $related ) {
    foreach($related as $r) {
    $retval .= '

  • '.wptexturize($r->post_title).'
  • ';
    }
    } else {
    $retval .= '

  • No related posts found
  • ';
    }
    $retval .= '

';
return $retval;
}
return;
}
add_shortcode('related_posts', 'related_posts_shortcode');

2:


CSS 就各自动手,草 一天又要过去了。

2015/05/30 补充一个:

ID);
if ($tags) {
$tag_ids = array();
foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;

$args=array(
‘tag__in’ => $tag_ids,
‘post__not_in’ => array($post->ID),
‘showposts’=>5,
‘caller_get_posts’=>1
);
$my_query = new wp_query($args);
if( $my_query->have_posts() ) {
echo ‘

相关文章

为了你的免费服务 Google Publisher for WordPress 来了

Google的牛逼之处就是提供免费服务让你为其提供免费服务,所以谷歌三“Boss”都成了最富有的人了。
这次Google退出了官方的 WordPress插件-Google Publisher;该插件整合了AdSense与谷歌网站管理员工具,可以让您轻松地使用谷歌的产品(作为回报提供免费的data)。插件目前处于“beta” 测试阶段。

Google Publisher 自动安装或手动安装可以看到谷歌发布的教程

修改WP Portfolio的URL

Portfolio的url默认一般都是site.com/Portfolio/postname这种形式,但是,想修改”Portfolio”为自己喜欢的字段的话是必须要经过修改主题模板code的。通过添加以下code则可以完成这一个性化需求。
'rewrite' => array( 'slug' => 'portfolio' ),
不同的主题对修改Portfolio所在的code会放在不同的文件下,需要寻找。添加后如果出现page 404提示,修改一次wordpress的固定链接,然后再改回原来的连接形式就没问题了。

下面这段代码,只需放到函数模板下,啥问题都解决了。如果出现404情况,只需改一下固定链接,在改回来,就没问题了。

// 随便你怎么写,把'rewrite' => array('slug' => 'portfolio-post'),里的portfolio-post改为自己想要的字段。
add_action('init', 'pyre_init');
function pyre_init() {
register_post_type(
'portfolio',
array(
'labels' => array(
'name' => 'Portfolio',
'singular_name' => 'Portfolio'
),
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'portfolio-post'),
'supports' => array('title', 'editor', 'thumbnail','comments'),
'can_export' => true,
)
);

// 注册与定制 portfolio
//register_taxonomy('portfolio_category', 'portfolio', array('hierarchical' => true, 'label' => 'Categories', 'query_var' => true, 'rewrite' => true));
register_taxonomy('portfolio_type', 'portfolio', array('hierarchical' => true, 'label' => 'Types', 'query_var' => true, 'rewrite' => true));
}

地球上到底有多少个 CMS

想知道当今世上到底有多少个CMS,你就慢慢数着去。太多了///

cmsmatrix 这里罗列了一大把,共1200个;对于开源的CMS pensourcecms 这里汇总和介绍了够多的不同CMS。 上面有提到最小的CMS “WonderCMS”,还有pimcore 竟获得了5颗星的评价,比Wordpress和Joomla还要多星。

在市场份额方面WordPress依然独占鳌头 64%,Joomla 才16%。不过上面对于Joomla的描述有这样一句话“地球上最强大的开源内容管理系统之一”。

让WordPress内容编辑器支持HTML标签

function fb_change_mce_options($initArray) {
$ext = 'pre[id|name|class|style],iframe[align|longdesc| name|width|height|frameborder|scrolling|marginheight| marginwidth|src]';

if ( isset( $initArray['extended_valid_elements'] ) ) {
$initArray['extended_valid_elements'] .= ',' . $ext;
} else {
$initArray['extended_valid_elements'] = $ext;
}

return $initArray;
}
add_filter('tiny_mce_before_init', 'fb_change_mce_options');

将上面的代码加到function模板中即可。

如果要恢复wordpress的html编辑模式在function中加
add_filter('wp_default_editor', create_function('', 'return "html";'));

Via http://www.catswhocode.com/blog/killer-hacks-to-enhance-wordpress-editor

WordPress的优化与减肥

1,删除不必要的元数据 例如wordpress版本号 ;在functions.php中加入如下代码:
remove_action( 'wp_head', 'wp_generator' ) ;
remove_action( 'wp_head', 'wlwmanifest_link' ) ;
remove_action( 'wp_head', 'rsd_link' ) ;

2.阻止浏览WordPress的文件夹结构,在根目录下的 .htaccess文件里加入如下一句:
Options All -Indexes
还要确保wp-content/themes和wp-content/plugins文件夹的index.php留空。

3.禁用在WordPress评论中使用HTML,在functions.php文件中加入下面这句
add_filter( 'pre_comment_content', 'wp_specialchars' );

4.关闭在WordPress文章的修订。在wp-config.php文件里加入如下这行 (减轻数据库)
define( 'WP_POST_REVISIONS', false);
如果保留此功能,只是减少修订次数 就加入
define( 'WP_POST_REVISIONS', 3);

5.隐藏次要的WordPress RSS,在functions.php文件中加入
remove_action( 'wp_head', 'feed_links', 2 );
remove_action( 'wp_head', 'feed_links_extra', 3 );

6.重定向所有rss到的主RSS订阅,在.htaccess文件中加入


RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !^.*(FeedBurner|FeedValidator) [NC]
RewriteRule ^feed/?.*$ 你的地址 [L,NC,R=301]

神秘的远程信息发布邮件地址

1.secret@blogger.com 您的Blogger博客秘密的电子邮件地址,发送到该地址的任何消息将直接发布到你的博客。可以发布文本和图像,附件支大小持到10MB。

2.secret@photos.flickr.com -你的Flickr帐户提供了一个唯一的电子邮件地址,可以通过电子邮件发送照片和视频到这个电子邮件地址,就可快速发布到Flickr。
可以指定您上传通过电子邮件本身的隐私级别。例如,secret+ public@photos.flickr.com / secret+ private@photos.flickr.com 图片不可见,或私人可见。

3.secret@post.wordpress.com 通过电子邮件发表文章到WordPress.com博客。你的这篇文章的标题作为邮件的主题,而邮件正文和图片附件将成为这篇文章的内容。您也可以在电子邮件中插入简配置的标签,类别,slug(自定义网址) 。例如, [tags G,W,M] ,设置发布时间[delay 2013-01-01 11:30:00 EST],[slug your-slug] 。

4.通过secret@m.evernote.com 可见笔记发布到evernote帐号上。

5.在手机上通过email应用使用secret@m.youtube.com这个地址将视频传到Youtube。

6.通过trigger@ifttt.com发布twitter推文,包括图片,给它发邮件,邮件内容就是发布的twitter信息。

7.通过secret@emailitin.com将文件发送到Google Drive,SkyDrive,Dropbox 这三个网盘上,免费的emailitin.com最多支持5个文件。给该地址发邮件就ok。或者结果IFTTT来实现。

8.给secret@tumblr.com发邮件,就可以发布tumblr文章,电子邮件的标题变成了文章标题,但如果你要发送照片时,会成为你的照片的标题。

9.secret@m.facebook.com 通过这个地址可以将图片或者视频发布到FB上,默认是公开状态;邮件标题,成为您的照片或视频的标题,如果电子邮件包括没有照片或者视频,邮件的主题将是您新的Facebook状态。ps:现在它已经一家狗屎网站。

禁用WordPress的自动更新

WordPress 3.7 更新来了,这个最新版本的最大特点就是带来了WordPress的自动更新功能。WordPress这个自动更新功能,是个好事也是个不好的事情。自动升级不用动手多舒服啊,但是,考虑到插件和主题与WordPress版本的兼容性,这也是个危险的事情。同时WordPress 3.7还带来了自动升级插件和主题的选项。

禁用WordPress 3.7自动更新的方法如下:
define( 'AUTOMATIC_UPDATER_DISABLED', true );
添加上面这行到wp-config.php 里面即可。