wordpress 自定rss 內容

wordprss 可以選擇訂閱內容全部顯示或部分顯示,假如部分顯示,也許有些東西在底部推薦給讀者的看不到,這裡有個方法,在function 裡面加上一段

[php]

if ( !function_exists(‘custom_feed_footer’) ){        function custom_feed_footer($content)         {                if(is_feed())                $content .= ‘自定內容’;                return $content;        }        add_filter(‘the_excerpt_rss’, ‘custom_feed_footer’);        add_filter(‘the_content’, ‘custom_feed_footer’);}

[/php]

記錄一下,希望有用

來自:http://www.wordpress.la/custom-feed-bottom-content.html

Wordprss taxonomy 是什麼

Taxonomy 的意思是一個分類學,wordpress 運用taxonomy 的地方很多,例如category(類別),tag(標籤),link category(連結分類)。到了2.3版本後,custom taxonomies 開始實現,用戶可以自定自己的分類

WordPress 是如何註冊一個taxonomy的?

利用下面的代碼可以建議一個”people”的taxonomy,文章類型是post

[php]
function people_init() {
// create a new taxonomy
register_taxonomy(
‘people’,
‘post’,
array(
‘label’ = __(‘People’),
‘sort’ = true,
‘args’ = array(‘orderby’ = ‘term_order’),
‘rewrite’ =array(‘slug’ = ‘person’)
)
);
}
add_action( ‘init’, ‘people_init’ );
[/php]

通常都會給這些特殊的分類自定風格主題,因此會給他們定義terms

the_terms( $post->ID, ‘people’, ‘People: ‘, ‘, ‘, ‘ ‘ );

如何列出主題呢?

query_posts( array( ‘people’ => ‘bob’, ‘posts_per_page’ => 10 ) );

 

根據風格主題文件查詢表可以知道,taxonomy 是先查詢taxonomy-taxonomy-term.php 再查詢taxonomy-taxonomy.php最後才是taxonomy.php

參考文章:http://codex.wordpress.org/Taxonomies

http://codex.wordpress.org/File:Template_Hierarchy.png

wordpress attachment images

最近做主題時要用到wordpress 附件圖片,在看數據庫時發現,原來每一個附件都是作為一個post插入數據庫,只是post-type不同,而且還有是屬於哪個post。在文章中也可以直接插入gallery。

看到這些功能,心動了,只是這些自帶的功能缺乏的東西就是附件圖片的描述。

根據說明,取得附件的function 是wp_get_attachment_image($id,size),這樣加一個foreach就能取得到post裡面的所有附件圖片,不過就是缺少介紹。

用google找到了一篇不錯的文件,寫了一個hack,可以取得附件圖片的title, description

[php]
/**
* Retrieves the attachment data such as Title, Caption, Alt Text, Description
* @param int $post_id the ID of the Post, Page, or Custom Post Type
* @param String $size The desired image size, e.g. thumbnail, medium, large, full, or a custom size
* @return stdClass If there is only one result, this method returns a generic
* stdClass object representing each of the image’s properties, and an array if otherwise.
*/
function getImageAttachmentData( $post_id, $size = ‘thumbnail’, $count = 1 )
{
$objMeta = array();
$meta;// (stdClass)
$args = array(
‘numberposts’ =$count,
‘post_parent’ =$post_id,
‘post_type’ = ‘attachment’,
‘nopaging’ =false,
‘post_mime_type’ =’image’,
‘order’ = ‘ASC’, // change this to reverse the order
‘orderby’ = ‘menu_order ID’, // select which type of sorting
‘post_status’ = ‘any’
);

$attachments = get_children($args);

if( $attachments )
{
foreach( $attachments as $attachment )
{
$meta = new stdClass();
$meta-ID = $attachment-ID;
$meta-title = $attachment-post_title;
$meta-caption = $attachment-post_excerpt;
$meta-description = $attachment-post_content;
$meta-alt = get_post_meta($attachment-ID, ‘_wp_attachment_image_alt’, true);

// Image properties
$props = wp_get_attachment_image_src( $attachment-ID, $size, false );

$meta-properties[‘url’] = $props[0];
$meta-properties[‘width’] = $props[1];
$meta-properties[‘height’] = $props[2];

$objMeta[] = $meta;
}

return ( count( $attachments ) == 1 ) ? $meta : $objMeta;
}
}

[/php]

如何使用:

[php]
getImageAttachmentData( $_posts-ID, ‘full’ );
[/php]

參考來源:http://www.farfromfearless.com/

http://www.newvibes.com/blog/wordpress-get-attachment-title-and-description/

discuz x1.5 facebook connect

本人很懶很笨,一直想做discuz x1.5 的facebook connect都沒做,已經有UTF8,繁體和簡體版,十分支持開源!(雖然有風險)

主要討論地方都在這裡:http://www.discuz.net/thread-2108176-1-1.html

繁體http://www.alan888.com/Discuz/thread-189876-1-1.html

經過測試,此插件還有一些問題,並不是真正的facebook connect,而是一個帳號綁定,判斷也是根據uid 和facebook id,沒有像sina那樣,使用oauth來認證,還是要註冊,其實引用discuz x1.5 ucenter的機制是可以不用註冊的,不過還是可以用的,我用它來學習學習,還是有點用處的。

其實,這個插件被多人修改,各個都掛上自己的名字。

我第一次見到這個插件是在http://www.siamdiscuz.com作者positron.th@gmail.com,網站倒閉了,然後見到xileguo.com,把這個插件修改後用來賣錢。現在就出現這個版本,基本上內容都相似,但不是我想要的那種。

http://bbs.qxinnet.com/thread-41559-1-1.html

smarty 使用心得

近些時間都是自己在開發php 程序,沒有用一些常見的CMS來改造,自己開發的程式在外觀上難免不好看,或者是要花大段時間去做修飾,所以選用上smarty 作為界面來輔助開發,感覺是相當方便的,假如有自己製作過一些著名CMS的主題,應該會很容易上手,我想理論是差不多的。

smarty現在已經出到3了,但我還是用2的,因為php版本的關係吧。但2對我來說已經足夠。如何開始使用smarty,也許官方網站的說明幫到你,有豐富的例子說明,對我來說幫助很大。但對於我這初學者來說,最大的問題就是不知道某些function的存在,導致在php那邊花了很多時間。

用上了smarty,基本上在php只是傳值就可以,在每個php文件上,把要傳到template的value都打上就可以

$smarty->assign(‘template調用的值’, ‘php的值’);
$smarty->display(‘index.tpl’); //這個就是調用的template文件

我基本上用得最多的就是section,它是一個循環,在database上while loop調用的值,都裝到一個array上,然後就可以在template上用{section}{/section}來調用值,而且section 有很多屬性,有name, start, loop, step,這些都很方便,name可以像javascript那樣取得這個section的一些值,例如$smarty.section.foo.index,foo就是name的名稱,index就是循環到哪了。start就是開始的index,loop循環次數,step就是每次間隔index,假如寫再php,也許要for loop,而且還要$i+2 之類,現在只要改一個數字就可以,十分方便。

接著用得最多還是{if}{elseif}{/if},可以用來判斷值,例如在section中判斷{if $smarty.section.foo.index eq 2}do something{/if},eq 就是等於的意思,這個我常用來作為修飾一些默認取值。十分好用

{foreach}也用的更多,用法和section 差不多,直接可以來輸出array值.

在php 中經常用到表單form,這裡會有很多值,還有不同的方式GET,POST, smarty也可以取得form傳輸的值:{$smarty} reserved variable,例如form傳出的值是page,方式用get,那麼就可以直接$smarty.get.page得到傳出的值,還可以用session來判斷,可以說很方便。

由於某些特殊的需要,要把一堆string換成array,雖然php 有explode,但是explode出來只是為了方便看,smarty應該有相關的方法,沒錯,{assign var=foo value=”,”|explode:$config.siteUrl} 這樣就可以把值存到foo中,在表單中得到multi selection時就會用上。

smarty的確很強大,我也看了3版本的介紹,應該是更加方便和標準化,有空再繼續研究。