AI Search
Classic Search
 Search Phrase:
 Search Type:
Advanced search options
 Search in Forums:
 Search in date period:

 Sort Search Results by:

AI Assistant
Notifications
Clear all

[Closed] "Sticky" option.

1 Posts
1 Users
0 Reactions
1,197 Views
Posts: 7
Topic starter
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
(@atomzpro)
Active Member
Joined: 3 years ago
[#26162]

 

I have about 20 apps on my site, and was going to set up a forum for each one. That would be a bit of an admin nightmare! So the next theory is to create one forum, but have a list of "product tags", (ie if someone wanted to post about the product directory, they could enter "product_directory" as a tag. I'm assuming the search option can search tags. As I type this, I suddenly thought a "tag cloud" type widget might be easier)

This means I need to add a "sticky" to one forum within one board so I can list all the possible key tags to use. This post should remain in situ even when extra posts create pagination. (In that way, a USER can also type in that tag and find posts related to that app, rather than searching for posts containing that keyword in their title)

I came across this code, but the post was seven years old and things might have moved on since then:

function custom_order_sticky_topics( $topics ) {

    $rules = array();

    //$rules[ ForumID ] = array( First TopicID, Second TopicID );
    $rules[4] = array(19, 6);
    $rules[7] = array(26, 63, 68);

    if( function_exists('WPF') && isset(WPF()->current_object['template']) ){
        if( WPF()->current_object['template'] == 'forum' || WPF()->current_object['template'] == 'topic' ){
            $tmp = array(); $ordered = array();
            if( empty($topics) || !isset($topics[0]['forumid']) || isset($topics[0]['permissions']) ){ return $topics; } else {  $forumid = $topics[0]['forumid']; }
            if( !empty( $rules ) && isset( $rules[$forumid] ) ){
                foreach( $topics as $key => $topic ){ if( isset($topic['topicid'])) { $tmp[$topic['topicid']] = $topic; } }
                if( !empty($tmp) ){ foreach( $rules[$forumid] as $topicid ){ if( isset($tmp[$topicid]) ) { $ordered[] = $tmp[$topicid]; unset($tmp[$topicid]); } } }
                $topics = array_merge($ordered, $tmp);
                $topics = array_values($topics);
            }
        }
    }
    return $topics;
}
add_filter( 'wpforo_get_topics', 'custom_order_sticky_topics', 20);

The reply suggested posting it within the function.php. However, on another plugin (sets default image on post), the vendor suggested that user's could also use similar "add_filter" code to a php code file, and place that file within the plugin folder, (effectively making it "private", and not affected by product updates) ** I know little about WP, but that would seem to suggest ALL plugins get loaded at runtime whether needed or not - which is probably why they advise keeping plugins to a min. In my own scripting, I use a "require" as and when a particular bit of extra code is needed.

In a nutshell, is the above code still the best method for sticky posts?


Share: