Hoe en vooral, waar, inbouwen in Wordpress

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Eddy E

Eddy E

20/10/2014 22:38:48
Quote Anchor link
Voor een project van de kerk, waarin alle informatie onderling via de website moet gaan lopen en er heel veel automatisch moet gaan gebeuren, gaan wij Wordpress gebruiken.
Alles werkt top en ook het 'indelen' van de berichten gaat prima.

Het nadeel is weer: er gaan totale noobs mee werken.
En als zij een bericht maken, is het heel belangrijk dat het in de juiste categorie komt.
Nu wil ik dat zij (gebruikers) VOORDAT ze ook maar een letter typen, de juiste categorie kiezen.
En het liefst ook nog maar uit een beperkte keuze die ik aan hun 'rol' hang.

Nu vond ik deze pagina:
http://wordpress.stackexchange.com/questions/14403/force-category-choice-before-creating-new-post

Code ziet er prima uit en het zal waarschijnlijk exact doen wat ik wil.
Maar hoe bouw ik dat in?

In posts-new.php iets... maar wat?
Weet iemand dat of kan iemand mij dat vertellen?

Uiteraard heb ik de auteur van dat bericht bericht, maar ik heb nog geen bericht terug gehad en na alle hulp die ik hier probeer te bieden leek het mij gepast hier zelf eens een hulpvraag neer te zetten.
 
PHP hulp

PHP hulp

29/03/2024 16:36:18
 
Ceasar Feijen

Ceasar Feijen

20/10/2014 23:45:02
Quote Anchor link
Makkelijkst is om toe te voegen aan functions.php in je theme map

Stel jouw theme heet twentyfourteen dan ga je naar

wordpress/wp-content/themes/twentyfourteen/functions.php

Voeg daar ergens de code toe en voila klaar

Nadeel, als jouw theme een update heeft ben je de gewijzigde code kwijt. Het beste is dus om een plugin er van te maken ( http://www.wplounge.nl/wordpress-plugins-maken/ )
Gewijzigd op 20/10/2014 23:47:26 door Ceasar Feijen
 
Peter K

Peter K

21/10/2014 07:00:18
Quote Anchor link
@Ceasar

Dit is te voorkomen door een kopie te maken van de theme map en deze een andere naam te geven. Zodoende creëer je je 'eigen' theme gebaseerd op een ander theme.
 
Eddy E

Eddy E

21/10/2014 11:03:58
Quote Anchor link
Maar dan kan je dus geen updates doorgevoerd krijgen van je theme.

Bedankt Ceasar! Ik ga gewoon een eigen plugin maken hiervoor.

Toevoeging op 21/10/2014 11:14:27:

Ik heb nu dit in:

<root>/wp-content/plugins/force_choose_category_first/code.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<?php
/*
Plugin Name: Force category choice before creating new post
Plugin URI: http://www.hervormdgiessenburg.nl/wp/
Description: Bij het maken van een nieuw bericht moet eerst een categorie gekozen worden.
Version: 1.0
Author: Jan Fabry, toegepast door Eddy Erkelens
Author URI: http://wordpress.stackexchange.com/questions/14403/force-category-choice-before-creating-new-post
License: GPL2
*/

/** Widget Class */

class force_category_choice_before_creating_post extends WP_Widget {
 


function
wpse14403_load_post_new()
{

    $post_type = 'post';
    if ( isset( $_REQUEST['post_type'] ) ) {
        $post_type = $_REQUEST['post_type'];
    }


    // Only do this for posts
    if ( 'post' != $post_type ) {
        return;
    }


    if ( array_key_exists( 'category_id', $_REQUEST ) ) {
        add_action( 'wp_insert_post', 'wpse14403_wp_insert_post' );
        return;
    }


    // Show intermediate screen
    extract( $GLOBALS );
    $post_type_object = get_post_type_object( $post_type );
    $title = $post_type_object->labels->add_new_item;

    include( ABSPATH . 'wp-admin/admin-header.php' );

    $dropdown = wp_dropdown_categories( array(
        'name' => 'category_id[]',
        'hide_empty' => false,
        'echo' => false,
        'hierarchical' => 1,
    ) );

    $dropdown = str_replace("<select ", '<select size="26" ', $dropdown);
    
    

    $category_label = __( 'Categorie:' );
    $continue_label = __( 'Doorgaan' );
    echo <<<HTML
<div class="wrap">
    <h2>Maak een keuze uit de <span style="color: green;">groene</span> categorieën waarin het bericht moet komen.</h2>
    <p>Alle berichten moeten een categorie hebben waar het bericht onder valt.<br>
    Voor allerlei geautomatiseerde taken is het noodzakelijk dat het bericht in de juiste categorie valt.<br>
    <br>
    U kunt hier slecht één <span style="color: green;">groene</span> categorie kiezen.<br>
    De <span style="color: red;">rode</span> categorieën moet u <span style="color: red;"><b>niet</b></span> kiezen.<br>
    Voor meer categorieën kunt u terecht in het volgende scherm.</p>
    

    <form method="get">
    <input type="hidden" name="post_type" value="{$post_type}" />
        <table class="form-table" style="max-width: 600px;">
            <tbody>
                <tr valign="top">
                    <th valign="top" scope="row">{$category_label}</th>
                    <td valign="top">{$dropdown}</td>
                    <td style="vertical-align: top;"><input name="continue" type="submit" class="button-primary" value="{$continue_label}" /></td>
                </tr>
            </tbody>
        </table>

    <style>
    option { color: green;}
    option.level-0 { color: red;}
    select { height: auto !important; min-width: 250px !important;}
    </style>
        
    </form>
</div>
HTML
;
    include( ABSPATH . 'wp-admin/admin-footer.php' );
    exit();
}


// This function will only be called when creating an empty post,
// via `get_default_post_to_edit()`, called in post-new.php

function wpse14403_wp_insert_post( $post_id )
{

    wp_set_post_categories( $post_id, $_REQUEST['category_id'] );
}
 
 
 
 
}
// end class
add_filter( 'default_content ', 'wpse14403_load_post_new' );

?>


Dus ik heb een class.
Ik roep het filter aan (onderaan).
Alleen of dat daarvoor 'default_content ' moet staan, weet ik niet. Lijkt mij wel, gezien http://codex.wordpress.org/Plugin_API/Filter_Reference

Reden dat ik dit plaats is natuurlijk, dat er niets gebeurt.
Gewijzigd op 21/10/2014 11:17:00 door Eddy E
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.