Tag: Wordpress

  • Create a WordPress Plugin

    In this tutorial you will learn how to create a WordPress plugin that will get data from the WordPress database – or other tables residing in the same database.

    As a starter here’s a video from the “Tips and Tricks HQ”. See the full blog post here. The tutorial will add a new tool in the Dashboard.

     

  • Styling WordPress

    WordPress

    So you have installed _S. And from here the rest is styling. Styling WordPress can be a daunting task. Especially if you don’t know the relevant ids and classes etc. But there is hope. Have a look here:

    Rapid Prototyping – or the new workflow

  • WordPress theme with Bootstrap

    An excellent tutorial by Zac Gordon: “How to Build a Responsive WordPress Theme with Bootstrap”.  You’ll learn to hack a WP theme from scratch with Bootstrap and jQuery enabled.

  • CSS i plugin

    Dokumentationen på Codex er ikke lysende klar; men et plugin gør sådan:

    /* filters etc. */
    add_action('wp_print_styles', 'add_hyperboard_stylesheet');
    
    // (...)
    
    /*Required stylesheets */
    function add_hyperboard_stylesheet() {
    	$myStyleUrl = WP_PLUGIN_URL . '/hyperboard/styles.css';
    	$myStyleFile = WP_PLUGIN_DIR . '/hyperboard/styles.css';
    
            if ( file_exists($myStyleFile) ) {
                wp_register_style('HyperBoardStyleSheets', $myStyleUrl);
                wp_enqueue_style( 'HyperBoardStyleSheets');
            }
    }

    Pluginet sætter en krog i wp_print_styles.

  • Skitse webkanban

    Skitse webkanban
    Skitse webkanban 20130222
  • Native admin tables i WordPress

    Smashing Magazine (SM) har en artikel om at bruge WPs egen tabel-skaber-klasse til at skabe tabeller. Det giver en spændende funktionalitet. Læs “Create Native Admin Tables in WordPress”.

    Så vidt jeg kan se er artiklen i SM inspireret af dette plugin af Matt van Andel. På sitepoint findes en ganske hæderlig forklaring til udvikling af plugins til WP af R. Nimesh. En tredje mulighed er dette plugin, der både kan lave databasen, tabellerne og shortcodes. Men den får kun tre stjerner, så der er nok en bug eller to i koden.

    WP udviklere kan anvende de originale klasser til at skabe plugins, der i stil og udtryk ligner den originale WP. Som WP udvikler kommer man hurtigt til at arbejde på en måde, der minder om CakePHP frameworket – selv om man dog ikke har en kommandolinje til rådighed.

  • Adgangskontrol i WP

    Denne lille stump kode er meget nyttig:

    if ( !current_user_can( 'publish_posts' ) )  {
    		wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
    	}

    Her er WP listen over brugerrettigheder: user_can “Roles and Capabilities” på Codex.

    En række af WPs hooks skriver “capability”. Hvis fx en Contributor skal have adgang til noget, så kan capability være edit_posts. Enkelt og praktisk.

     

  • Trin II

    • Nu virker mit udkast
    • Så skal alle CRUD-filer laves.
  • Phpscaffold og wpdb klassen

    <? 
    global $wpdb; // henter klassen
    
    if (isset($_POST['submitted'])) { 
    foreach($_POST AS $key => $value) { $_POST[$key] = mysql_real_escape_string($value); } 
    $sql = "INSERT INTO `KbnLog` ( `Id` ,  `Date` ,  `KbnProjects_Id` ,  `KbnNotes_Id` ,  `KbnStates_Id`  ) VALUES(  '{$_POST['Id']}' ,  '{$_POST['Date']}' ,  '{$_POST['KbnProjects_Id']}' ,  '{$_POST['KbnNotes_Id']}' ,  '{$_POST['KbnStates_Id']}'  ); "; 
    
    // mysql_query($sql) or die(mysql_error()); 
    $wpdb->query($wpdb->prepare($sql)); // Query
    
    echo "Added row.<br />"; 
    } 
    ?>
    
    <form action='' method='POST'> 
    <p><b>Id:</b><br /><input type='text' name='Id'/> 
    <p><b>Date:</b><br /><input type='text' name='Date'/> 
    <p><b>KbnProjects Id:</b><br /><input type='text' name='KbnProjects_Id'/> 
    <p><b>KbnNotes Id:</b><br /><input type='text' name='KbnNotes_Id'/> 
    <p><b>KbnStates Id:</b><br /><input type='text' name='KbnStates_Id'/> 
    <p><input type='submit' value='Add Row' /><input type='hidden' value='1' name='submitted' /> 
    </form>

    Phpscaffold genererer en kode, der næsten kan anvendes; men et par linjer skal rettes. For det føste skal wpdb gøres global. For det andet anvendes wpdb-klassen til at udføre en SQL query:

    <? global $wpdb; // henter klassen // include('config.php'); - denne linje slettes er ikke noedvendig if (isset($_POST['submitted'])) { foreach($_POST AS $key => $value) { $_POST[$key] = mysql_real_escape_string($value); } $sql = "INSERT INTO `KbnLog` ( `Id` , `Date` , `KbnProjects_Id` , `KbnNotes_Id` , `KbnStates_Id` ) VALUES( '{$_POST['Id']}' , '{$_POST['Date']}' , '{$_POST['KbnProjects_Id']}' , '{$_POST['KbnNotes_Id']}' , '{$_POST['KbnStates_Id']}' ); "; // linjen herunder skal aendres til en wpdb klasse // se denne vejledning http://codex.wordpress.org/Class_Reference/wpdb // mysql_query($sql) or die(mysql_error()); // sikkerhed: brug wp prepare // echo $sql; // rens evt. m. prepare $wpdb->query($sql); // query //echo "Added row.<br />"; //echo "<a href='log-list.php'>Back To Listing</a>"; } ?> <form action='' method='POST'> <p><b>Id:</b><br /><input type='text' name='Id'/> <p><b>Date:</b><br /><input type='text' name='Date'/> <p><b>KbnProjects Id:</b><br /><input type='text' name='KbnProjects_Id'/> <p><b>KbnNotes Id:</b><br /><input type='text' name='KbnNotes_Id'/> <p><b>KbnStates Id:</b><br /><input type='text' name='KbnStates_Id'/> <p><input type='submit' value='Add Row' /><input type='hidden' value='1' name='submitted' /> </form>

    Phpscaffolds kildekode burde relativt enkelt kunne redigeres til at “kompilere” en WordPress egnet kode; men det et andet projekt.

    Ovenstående kode beskytter ikke mod forsøg på SQL-indsprøjtninger. Ved hjælp af prepare opnås en bedre beskyttelse. Wpdblinjen skal se sådan ud:

    $wpdb->query($wpdb->prepare($sql));

    Den rensede kode ser herefter sådan ud:

    <? 
    global $wpdb; // henter klassen
    
    if (isset($_POST['submitted'])) { 
    foreach($_POST AS $key => $value) { $_POST[$key] = mysql_real_escape_string($value); } 
    $sql = "INSERT INTO `KbnLog` ( `Id` ,  `Date` ,  `KbnProjects_Id` ,  `KbnNotes_Id` ,  `KbnStates_Id`  ) VALUES(  '{$_POST['Id']}' ,  '{$_POST['Date']}' ,  '{$_POST['KbnProjects_Id']}' ,  '{$_POST['KbnNotes_Id']}' ,  '{$_POST['KbnStates_Id']}'  ); "; 
    
    $wpdb->query($wpdb->prepare($sql)); // Query
    
    echo "Added row.<br />"; 
    } 
    ?>
    
    <form action='' method='POST'> 
    <p><b>Id:</b><br /><input type='text' name='Id'/> 
    <p><b>Date:</b><br /><input type='text' name='Date'/> 
    <p><b>KbnProjects Id:</b><br /><input type='text' name='KbnProjects_Id'/> 
    <p><b>KbnNotes Id:</b><br /><input type='text' name='KbnNotes_Id'/> 
    <p><b>KbnStates Id:</b><br /><input type='text' name='KbnStates_Id'/> 
    <p><input type='submit' value='Add Row' /><input type='hidden' value='1' name='submitted' /> 
    </form>

    I stedet for at rette global-linjen i alle filerne kan man bevare include(‘config.php’); – og lave en phpfil med dette indhold:

    <?php global $wpdb; ?>
  • Plugin til WordPress

    Koden bør udvikles som et WordPress plugin. Noterne skal kunne vises på en side via en shortcode fx “petj-kanban”.

  • Create WordPress widget from scratch

    Create WordPress widget from scratch.

    Hvordan man laver en WordPress widget – fra bunden af.

Enable Notifications OK No thanks

We use cookies - more information

Multimusen.dk will set a few cookies from Doubleclick, Google and the Social Media plugins they ay set some cookies. Some of my pages use APIs - such as YouTube, LinkedIn, Google Fonts, Google Maps, Mapbox, Spotify, Jetpack, Twitter, Facebook &c.. Such plugins may set the odd cookie.

Close