CMS

Flexible Widgets for WordPress

Flex­i­ble Wid­gets is a plu­gin for Word­Press that makes it pos­si­ble to dis­play a wid­get on selected cat­e­gories and/or pages.


The Flex­i­ble Wid­gets plu­gin lets you dis­play a wid­get on any cat­e­gory or page you wish. When set­ting up the wid­get, you are able to select the cat­e­gories and/or pages where you want to dis­play the wid­get. If none are selected, the wid­get will be dis­played glob­ally on your site, exactly like a default Word­Press widget.

The plu­gin comes in handy if you need your side­bar con­tent to change con­tex­tu­ally from page to page in rela­tion to your main con­tent. It is espe­cially use­ful if you want to use Word­Press as a CMS.

Flex­i­ble Wid­gets will replace the default Word­Press widgets.

Sreen­shot

Widget administration interface in the WordPress plugin Flexible Widgets

Select­ing cat­e­gories and pages in each widget’s back end.

Instal­la­tion

  1. Upload the flexible-widgets folder to the /wp-content/plugins/ directory
  2. Acti­vate the plu­gin through the ‘Plu­g­ins’ menu in WordPress

or search for “Flex­i­ble Wid­gets” in the “Add new” sec­tion of the plu­g­ins menu in your Word­Press admin inter­face and hit “Install now”.

Change log

0.3

  • Fixes an issue: Option­ally dis­play wid­gets on the home page, whether it is set up to be a sta­tic page or the blog posts page.

0.2

  • Tiny update to get the plu­gin and author URIs right.
  • Update on the instal­la­tion info.

0.1

  • Brand new plu­gin. Still play­ing with the bub­ble wrap.

Known issues

May con­flict with themes or plu­g­ins which include cus­tom widgets.

Please see the plu­gin sup­port forum.

Addi­tional information

The Flex­i­ble Wid­gets plu­gin con­sists of a bunch of ideas and lines of code, I wrote for the Word­Press theme in use at the web­site of Hors­ens Pub­lic Library.

This is my first plu­gin for Word­Press. I am sure, there is room for improve­ment. The code is far from per­fect as my pro­gram­ming skills are some­what lim­ited. But I do think the idea is quite good, so if you can write lean code and are des­per­ately in need of a small side project, you should be very wel­come to help me out.

If you have any ques­tions or com­ments, feel free to leave a reply.

WordPress som CMS: En sidebar pr. kategori

Opnå mere flek­si­bilitet i bru­gen af Word­Press som CMS med én side­bar pr. kat­e­gori. Få PHP koden her.

Mange designere og udviklere væl­ger at bruge Word­Press som CMS fordi det er så enkelt og rel­a­tivt nemt at imple­mentere og udvikle til. Én af Word­Press’ store begræn­sninger i rollen som CMS er imi­dler­tid sidebar-metaforen. Som udgangspunkt er der i de fleste themes kun én eller to side­bars til rådighed sitewide, netop fordi Word­Press er skabt som blog­ging værk­tøj. I en blog er det sjældent nød­vendigt med flere.

Men har man brug for et decideret CMS, er der behov for rel­e­vant sekundært ind­hold på alle sider. Noget, der relaterer sig til sidens primære ind­hold og ikke bare en generel liste med kat­e­gorier, et arkiv og en blog roll.

Og så fik jeg den ide at man måske kunne opnå noget brug­bart, hvis man kunne oprette en side­bar pr. emnekat­e­gori. Så ville det være muligt at mål­rette widget-indhold til de enkelte emner og dermed øge rel­e­vansen af sekundært ind­hold på indlæg og kat­e­gorisider. Efter en del eksper­i­menteren, lykkedes det mig at skrue neden­stående sammen.

Neden­stående kode skal stå i dit themes functions.php fil:


<?php
# Get sidebar names from db.
global $wpdb;
$my_widget_name = $wpdb->get_col("SELECT slug
FROM $wpdb->terms, $wpdb->term_taxonomy
WHERE $wpdb->terms.term_id=term_taxonomy_id
AND taxonomy='category' AND count!=0 ORDER BY name ASC");

# Register one sidebar per category name.
foreach($my_widget_name as $my_widget) {
  register_sidebar(array(
    'name' => 'Category: ' . $my_widget,
    'before_widget' => '<div id="%1$s" class="%2$s widget">',
    'after_widget' => '</div>',
    'before_title' => '<h3 class="widget-title">',
    'after_title' => '</h3>', ));
}
?>

Først opret­ter vi en forbindelse til data­basen, hen­ter kat­e­gori­navn og id fra alle kat­e­gorier, der ikke er tomme, samt sorterer kat­e­gori­erne efter navn. Dernæst reg­istr­erer vi vores nye side­bars i Word­Press med funk­tio­nen register_sidebar samt navn­giver hver side­bar med det enkelte kategorinavn.

Ind­sæt de nye side­bars i dit themes sidebar.php fil:


<?php
# If this is a category archive page.
if (is_category()) {
	global $wp_query;
	$cat_obj = $wp_query->get_queried_object();
	$category_slug = $cat_obj->slug;
}
# If this is a post.
elseif (is_single()) {
	$category = get_the_category();
	$category_slug = $category[0]->category_nicename;
}
# The widget.
if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('category_' . $category_slug) ) : ?>
<div id="search" class="widget widget_search">
	<h3><?php _e('Search'); ?> <?php bloginfo('name'); ?></h3>
	<?php include (TEMPLATEPATH . '/searchform.php'); ?>
</div>
<?php endif; ?>

For at kalde den rigtige side­bar, skal vi have fat i det rigtige kat­e­gori­navn. Hvis siden er en kategori-side, kalder vi kat­e­goriens navn. Men hvis siden er et indlæg, kalder vi navnet på den første kat­e­gori, siden er gemt i. Nu udskrives kat­e­goriens side­bar, hvis du befinder dig på en kategori-side eller et indlæg.

Hvad så med ‘sider’?
Man kan lave noget tilsvarende med Word­Press’ side-metafor. I stedet for at tage fat i kat­e­gori­erne i data­basekaldet, skal man så bare have fat i tilsvarende for ‘sider’. I så fald vil data­basekaldet se ud som følger:


$page_sidebars = $wpdb->get_col("SELECT post_name
FROM $wpdb->posts WHERE post_type='page'
AND post_status='publish' AND post_parent='0'
ORDER BY menu_order ASC");

Bemærk!
Man skal være for­sigtig med meto­den, hvis man har mange kat­e­gorier og/eller sider, da Word­Press laver et kald til data­basen for hver side­bar, den skal loade i backend’en. Skal den lave for mange kald, får man time out og så fun­gerer meto­den naturligvis ikke.

Linkhøst fra 17. juli til 1. august

Bog­mærker ind­sam­let fra 17. juli til 1. august

Brush Pilot™ — The fast and easy Pho­to­shop brush pre­viewer for Mac OS X
1. august
Brush Pilot™ is a fast and easy appli­ca­tion for pre­view­ing Adobe® Pho­to­shop® and Adobe Pho­to­shop Ele­ments Brushes (.abr), built exclu­sively for Mac OS X. Brush Pilot is designed to save you time by allow­ing you to instantly pre­view your brushes with­out hav­ing to load them into Photoshop.
The Autopsy Of Word­Press As CMS With 25 Great WP Plu­g­ins & Designs | Onex­trapixel — Show­cas­ing Web Treats With­out Hitch
17. juli
Find­ing a suit­able and sim­ple to use CMS can be tough, it must be flex­i­ble, secure and work right out of the box. Beside that, it must be able to extend it’s func­tion­al­ity and search engine friendly. Let us now dis­cuss why neti­zens like Word­Press and what Word­Press can fur­ther do for us as a sim­ple Con­tent Man­age­ment Sys­tem (CMS).
Dig­i­tal Pho­tog­ra­phy School — Dig­i­tal Pho­tog­ra­phy Tips for You
17. juli
Wel­come to Dig­i­tal Pho­tog­ra­phy School! Dis­cover how to use your dig­i­tal cam­era with our Dig­i­tal Pho­tog­ra­phy Tips. We are a com­mu­nity of pho­tog­ra­phers of all expe­ri­ence lev­els who come together to learn, share and grow in our under­stand­ing of photography.

Linkhøst fra 2. juli til 8. juli

Bog­mærker ind­sam­let fra 2. juli til 8. juli

Advanced Word­Press — Cat­e­gory Based Nav­i­ga­tion Instead of Page Based | Intel­li­gent Web­site Wid­get Deploy­ment Strategies
8. juli
Most Word­Press themes use pages for nav­i­ga­tion. This is fine for most sin­gle user blogs, but when you want to really start expand­ing what Word­Press can do, look at using cat­e­gories for your main navigation.
Pat­tern­Cooler | Cool Seam­less Back­ground Pat­tern Designs for Web and Graphic Projects, Blogs, Twit­ter, MySpace, Mobile Phone Wallpapers,
4. juli
Add your own col­ors to con­tem­po­rary and retro pat­tern designs, or browse from thou­sands of pre-colored pat­terns in the seam­less pat­tern back­ground library.
Cre­ate a Clean and Col­or­ful Web Lay­out in Pho­to­shop — Tutorial9
2. juli
In this tuto­r­ial I am going to show you how to cre­ate a clean cor­po­rate lay­out in Photoshop

Linkhøst fra 16. juni til 17. juni

Bog­mærker ind­sam­let fra 16. juni til 17. juni

Code Styling Project » How to use Word­Press Metaboxes at own plugins
17. juni
Start­ing with Word­Press Ver­sion 2.7 a new kind of metabox han­dling has been occured at Back­end. You are now able to drag/drop or hide this Boxes. This makes daily work easier.

But there is cur­rently insuf­fi­cient doc­u­men­ta­tion avail­able, how this metaboxes can be used at your own plu­gin pages. I try here to explain the needed func­tions and have writ­ten a demo-plugin for down­load based on this arti­cles information.

Using add_meta_box() | Andrew Ferguson
17. juni
In the Word­Press 2.5 upgrade, Automat­tic com­pletely revamped the admin­is­tra­tion inter­face — includ­ing the way that boxes were cre­ated for plugins
Func­tion Web Design & Devel­op­ment [ Blog ] » Tuto­r­ial: Cre­at­ing Cus­tom Write Pan­els in WordPress
17. juni
Use Cus­tom Write options to eas­ily add any unique data to your post
Word­Press › Sup­port » Dis­play List of Cur­rent Category’s Chil­dren OR Posts
16. juni
So essen­tially I want to tell Word­Press’ archive.php page that if is_category() and the cat­e­gory has chil­dren, dis­play the kid­dies. If it doesn’t, dis­play posts.

Linkhøst fra 29. maj til 4. juni

Bog­mærker ind­sam­let fra 29. maj til 4. juni

Bogens fremtid er dig­i­tal | information.dk
4. juni
Danske for­lag satser stort på sal­get af e-bøger og lancerer til efteråret over 400 nye titler. Eksplo­sive sal­gstal fra USA og Eng­land har geno­plivet troen på, at bogens fremtid er digital
100 icon sets & 50,000+ icons
31. maj
Icon­finder col­lected this awe­some list of icons. Lots of great graph­ics to go for here.
40 Excep­tional “CMS Enabling” Word­Press Plu­g­ins | Noupe
29. maj
We are tak­ing a look at 40+ qual­ity and use­ful Word­Press Plug-ins that will turn a sim­ple Word­Press site into a blaz­ing fast dynamic one, with eas­ily man­aged con­tent, that you and your clients will love to use.

Linkhøst fra 27. maj til 28. maj

Bog­mærker ind­sam­let fra 27. maj til 28. maj

New Medi­aWiki Exten­sion: WPMU Sin­gle Sign-on — CUNY Aca­d­e­mic Com­mons Devel­op­ment Blog
28. maj
WPMu Sin­gle Sign-on is a pack­age of exten­sions for Medi­aWiki that cre­ates a sin­gle, shared login sys­tem for Medi­aWiki and Word­Press Multi-User.
RSS Stream — Rick’s HideOut
28. maj
RSS Stream dis­plays your social feeds in a lifestream way.
Word­Press › More Fields « Word­Press Plugins
27. maj
More Fields is a Word­Press plu­gin that adds boxes to the Write/Edit page. These boxes con­tains input fields, so that addi­tional (more) fields can be added to a post. For exam­ple, if you write about books, you can add a box where you can enter title and author, etc. The boxes can be placed either to the right or to the left on the Write/Edit page.

Linkhøst fra 16. marts til 25. marts

Bog­mærker ind­sam­let fra 16. marts til 25. marts

Theme Play­ground | Con­sol­i­date Word­Press Plu­g­ins to Speed up Your Site
25. marts
Plu­g­ins give us the abil­ity to add fur­ther func­tion­al­ity to our sites. They also can add some nasty speed bumps and (dare I say the word) bloat to our pages that can slow down the load time.
Very Icon, Free Icons, PNG ICO Icons,Vista Icons Search AND Download
18. marts
Search and free down­load Over 20,000 high qual­ity ICO, PNG Icons for Win­dows, Mac­in­tosh and Linux.
SilverStripe.org — Open Source CMS / Framework
16. marts
A CMS for web­site edi­tors. Our CMS is fast, flex­i­ble, and FREE. It’s designed
for peo­ple who edit web­site content.

Ultrakorte uddrag i WordPress

I Word­Press kan man skrive et kort uddrag til de enkelte blogindlæg. Det er ofte anven­deligt på sites, der ikke nød­vendigvis har karak­ter af en typisk weblog, f.eks. jour­nal­is­tiske mag­a­siner, por­taler eller virksomhedssites.

Uddraget har som udgangspunkt en stør­relse på 55 ord og det kan man ikke umid­del­bart ændre på. Men 55 ord kan godt være 40 ord for meget, hvis uddraget ønskes vist på en bestemt måde. Jeg har gravet lidt i uddraget og fun­det frem til en måde at begrænse det på.

The_excerpt() laver for lange uddrag
For at imple­mentere uddraget i tem­platen bruges tag’et the_excerpt() (se doku­men­ta­tion her). Dette tag er imi­dler­tid ikke en streng, men en funk­tion og der­for kan man ikke umid­del­bart splitte det ad med PHP. Jeg fandt dog ud af, at grund­laget for funk­tio­nen the_excerpt() er stren­gen get_the_excerpt() og denne streng kan godt splittes ad.

Vi har altså brug for en funk­tion, der kan splitte ind­holdet i stren­gen op i enkel­tord, tælle antallet af enkel­tord og dernæst sætte det ønskede antal ord sam­men igen. Jeg nåede frem til føl­gende opskrift:

Opskriften på korte uddrag
Put neden­stående funk­tion ind i filen functions.php i dit theme:

<?php
function string_limit_words($string, $word_limit)
{
  $words = explode(' ', $string, ($word_limit + 1));
  if(count($words) > $word_limit)
  array_pop($words);
  return implode(' ', $words);
}
?>

Placér dernæst føl­gende kodes­tump i din tem­plate, der hvor du ønsker at få spyt­tet uddraget ud:

<?php
  $excerpt = get_the_excerpt();
  echo string_limit_words($excerpt,25);
?>

… hvor 25 er antallet af ønskede ord i uddraget. Du kan nu styre, hvor mange ord der skal vises i dit uddrag.

Løs­nin­gen er tillige pub­liceret i Word­Press’ sup­port­fo­rum.

Et par gode CMS plugins til WordPress

Jeg er i øjeb­likket i færd med at udvikle et nyt web­site på min arbe­jd­splads, Hors­ens kom­munes bib­lioteker. Sitet kom­mer til at køre i Word­Press MU, og jo mere man graver i det sys­tem, des mere bliver det klart, at man kan få et ganske vel­fun­gerende CMS ud af det.

Jeg har dog savnet et par funk­tioner, men det findes der heldigvis plu­g­ins til.

Fjern uak­tuelle indlæg
Et indlæg kan sættes til blive udgivet i fremti­den, emn jeg har også behov for, at det automa­tisk kan udløbe, dvs. blive slet­tet når det er uaktuelt.

Til det for­mål er plugin’et Post Expi­ra­tor glim­rende. Post Expi­ra­tor kan automa­tisk enten slette indlæg eller ændre deres sta­tus fra ‘udgivet’ til ‘kladde’, således at de er skjult, på den dato hvor indlægget bliver uaktuelt.

Hent Post Expi­ra­tor her

Omdirigér sider og indlæg
Det er ikke alle punk­ter i menuen, der nød­vendigvis skal linke til en side. F.eks. kan man have behov for at linke til et indlæg eller en emnekat­e­gori. Omvendt kan der være brug for at linke direkte fra en indlægsover­skrift til en side.

Page Links To er et plu­gin, der gør netop dette muligt. I admin­is­tra­tio­nen af det enkelte indlæg eller den enkelte side giver plugin’et mulighed for at ind­taste den URL, man ønsker, der i stedet skal linkes til.

Hent Page Links To her

Skjul bestemte sider fra menuen
Det kan nogle gang være nød­vendigt at skjule bestemte sider fra en menu. Skal man f.eks. bruge en bekræf­telses­side til for­mu­la­rer bør den ikke nød­vendigvis fremgå af menuen.

Det kan man gøre med plugin’et Exclude Pages. Plugin’et skjuler ganske enkelte nærmere bestemte sider fra sidenavigationen.

Hent Exclude Pages her