Mit File-Name alleine wird das natürlich nicht klappen, wenn schon musst du auch alle Funktionen umbenennen.
Danke für den Tipp, nachdem ich jetzt einige Stunden mit dem Code verbracht habe... Ich bekomme es einfach nicht hin. Dabei kann es doch nicht so schwer sein. Das gesamte Plugin besteht lediglich aus den folgenden paar Zeilen.
Vileicht kann jemand so nett sein und die enstprechenden stellen ändern.
DANKE
<?php
/*
Plugin Name: Archives by Selected Categories
Plugin URI: http://www.dagondesign.com/articles/archives-by-selected-categories-plugin-for-wordpress/
Description: Generates a simple archive of posts by selected categories - a very basic version of my sitemap generator plugin.
Author: Dagon Design
Version: 1.2
Author URI: http://www.dagondesign.com
*/
$ddabsc_version = '1.2';
// Setup defaults if options do not exist
add_option('ddabsc_cats', '');
add_option('ddabsc_cats_ex', '');
function ddabsc_add_option_pages() {
if (function_exists('add_options_page')) {
add_options_page('Archives by Selected Categories', 'DDArchivesSelCats', 8, __FILE__, 'ddabsc_options_page');
}
}
function ddabsc_options_page() {
global $ddabsc_version;
if (isset($_POST['set_defaults'])) {
echo '<div id="message" class="updated fade"><p><strong>';
update_option('ddabsc_cats', '');
update_option('ddabsc_cats_ex', '');
echo 'Default Options Loaded!';
echo '</strong></p></div>';
} else if (isset($_POST['info_update'])) {
echo '<div id="message" class="updated fade"><p><strong>';
update_option('ddabsc_cats', (string)$_POST["ddabsc_cats"]);
update_option('ddabsc_cats_ex', (string)$_POST["ddabsc_cats_ex"]);
echo 'Configuration Updated!';
echo '</strong></p></div>';
} ?>
<div class=wrap>
<h2>Archives by Selected Categories v<?php echo $ddabsc_version; ?></h2>
<p>For information and updates, please visit:<br />
<a href="http://www.dagondesign.com/articles/archives-by-selected-categories-plugin-for-wordpress/">http://www.dagondesign.com/articles/archives-by-selected-categories-plugin-for-wordpress/</a></p>
<form method="post" action="<?php echo $_SERVER["REQUEST_URI"]; ?>">
<input type="hidden" name="info_update" id="info_update" value="true" />
<h3>Options</h3>
<table width="100%" border="0" cellspacing="0" cellpadding="6">
<tr valign="top"><td width="20%" align="right">
<strong>Categories</strong>
</td><td align="left">
<input name="ddabsc_cats" type="text" size="50" value="<?php echo stripslashes(htmlspecialchars(get_option('ddabsc_cats'))) ?>"/>
<br />- A comma-separated list of category IDs you want listed
<br />- Leave blank for all categories
<br /><br />
</td></tr>
<tr valign="top"><td width="20%" align="right">
<strong>Excluded Categories</strong>
</td><td align="left">
<input name="ddabsc_cats_ex" type="text" size="50" value="<?php echo stripslashes(htmlspecialchars(get_option('ddabsc_cats_ex'))) ?>"/>
<br />- A comma-separated list of category IDs you want excluded
</td></tr>
</table>
<div class="submit">
<input type="submit" name="set_defaults" value="<?php _e('Load Default Options'); ?> »" />
<input type="submit" name="info_update" value="<?php _e('Update options'); ?> »" />
</div>
</form>
</div><?php
}
function ddabsc_generate() {
global $wpdb;
$table_prefix = $wpdb->prefix;
$t_out = '';
$ddabsc_cats = trim(get_option('ddabsc_cats'));
$ddabsc_cats_ex = trim(get_option('ddabsc_cats_ex'));
// generate array of selected cats
$cats = array();
if ($ddabsc_cats == '') { // all cats
$cat_list = (array)$wpdb->get_results("
SELECT {$table_prefix}term_taxonomy.term_id as catID
FROM {$table_prefix}posts, {$table_prefix}term_relationships, {$table_prefix}term_taxonomy, {$table_prefix}terms
WHERE {$table_prefix}posts.ID = {$table_prefix}term_relationships.object_id
AND {$table_prefix}term_relationships.term_taxonomy_id = {$table_prefix}term_taxonomy.term_taxonomy_id
AND {$table_prefix}terms.term_id = {$table_prefix}term_taxonomy.term_id
AND {$table_prefix}term_taxonomy.taxonomy = 'category'
GROUP BY catID
");
foreach ($cat_list as $c) {
$cats[] = $c->catID;
}
} else { // just selected cats
$cats_tmp = (array)explode(',', $ddabsc_cats);
foreach ($cats_tmp as $c) {
$cats[] = $c;
}
}
// generate array of excluded cats
$cats_ex = array();
if ($ddabsc_cats_ex != '') {
$cats_tmp = (array)explode(',', $ddabsc_cats_ex);
foreach ($cats_tmp as $c) {
$cats_ex[] = $c;
}
}
// get diff of two cats
$new_cats = array_diff($cats, $cats_ex);
// generate code
$cat_code = '';
if (count($new_cats) > 0) {
foreach ($new_cats as $c) {
$tmp_cats[] = " {$table_prefix}terms.term_id = " . $c . " ";
}
$cat_code = ' AND ( ' . implode(' OR ', $tmp_cats) . ' ) ';
}
$post_list = (array)$wpdb->get_results("
SELECT ID, post_date, post_title, {$table_prefix}terms.name as catname
FROM {$table_prefix}posts, {$table_prefix}term_relationships, {$table_prefix}term_taxonomy, {$table_prefix}terms
WHERE {$table_prefix}posts.ID = {$table_prefix}term_relationships.object_id
AND {$table_prefix}term_relationships.term_taxonomy_id = {$table_prefix}term_taxonomy.term_taxonomy_id
AND {$table_prefix}terms.term_id = {$table_prefix}term_taxonomy.term_id
AND {$table_prefix}term_taxonomy.taxonomy = 'category'
{$cat_code}
AND post_status = 'publish'
AND post_type != 'page'
ORDER BY catname, post_date DESC
");
if (count($post_list) > 0) {
$last_cat = '';
foreach ($post_list as $p) {
$id = $p->ID;
$catname = $p->catname;
$link = get_permalink($p->ID);
$title = $p->post_title;
$date = date("F j, Y", strtotime($p->post_date));
if ($last_cat != $catname) {
if ($last_cat != '') {
$t_out .= '</ul>';
}
$t_out .= '<p><strong>' . $catname . '</strong></p><ul>';
$last_cat = $catname;
}
$t_out .= '<li><a href="' . $link . '" title="' . $title . '">' . $title . '</li>';
}
$t_out .= '</ul>';
}
return $t_out;
}
function ddabsc_check($content) {
if (strpos($content, "<!-- ddarchivesbycat -->") !== FALSE) {
$content = preg_replace('/<p>\s*<!--(.*)-->\s*<\/p>/i', "<!--$1-->", $content);
$content = str_replace("<!-- ddarchivesbycat -->", ddabsc_generate(), $content);
}
return $content;
}
add_action('admin_menu', 'ddabsc_add_option_pages');
add_filter('the_content', 'ddabsc_check');
?>
Alles anzeigen