6 Commits

Author SHA1 Message Date
49f6c5c129 add github actions 2026-02-17 14:53:52 -06:00
b4b31f8123 add custom event parse request
For some reason it doesn't run through sportspress' query parser. i can't figure out why, but this is a way around it.
2024-05-20 16:40:08 -05:00
3ecb7ea937 Merge branch 'permalink'
# Conflicts:
#	tonys-sportspress-enhancements.php
2024-05-17 10:28:27 -05:00
78bf5207ab Merge branch 'open-graph-tags' 2024-05-17 10:27:17 -05:00
47433a939c first init 2024-05-17 10:26:42 -05:00
6a373208dd remove spaces from score 2024-05-17 07:19:09 -05:00
4 changed files with 140 additions and 1 deletions

48
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,48 @@
name: Create Release ZIP
on:
push:
tags:
- 'v*'
permissions:
contents: write
jobs:
build-and-release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build ZIP
id: build_zip
run: |
set -e
TAG=${GITHUB_REF##*/}
ZIP_NAME="${GITHUB_REPOSITORY##*/}-$TAG.zip"
echo "Creating $ZIP_NAME"
zip -r "$ZIP_NAME" . -x ".git/*" "node_modules/*" ".github/*" "tests/*" "*.zip"
echo "zip_name=$ZIP_NAME" >> $GITHUB_OUTPUT
- name: Create GitHub Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref_name }}
release_name: ${{ github.ref_name }}
body: Release ${{ github.ref_name }}
draft: false
prerelease: false
- name: Upload Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ${{ steps.build_zip.outputs.zip_name }}
asset_name: ${{ steps.build_zip.outputs.zip_name }}
asset_content_type: application/zip

View File

@@ -91,7 +91,8 @@ function custom_open_graph_tags_with_sportspress_integration() {
);
$i++;
endforeach;
$title = "{$teams_result_array[0]['team_name']} {$teams_result_array[0]['result']['r']} - {$teams_result_array[1]['result']['r']} {$teams_result_array[1]['team_name']} ({$publish_date})";
$publish_date = get_the_date('F j, Y', $post);
$title = "{$teams_result_array[0]['team_name']} {$teams_result_array[0]['result']['r']}-{$teams_result_array[1]['result']['r']} {$teams_result_array[1]['team_name']} ({$publish_date})";
$description .= " " . "{$teams_result_array[0]['team_name']} ({$teams_result_array[0]['outcome']}), {$teams_result_array[1]['team_name']} ({$teams_result_array[1]['outcome']}).";;
}

View File

@@ -0,0 +1,89 @@
<?php
/*
Plugin Name: Custom Event Permalinks
Description: Adds a custom permalink structure for the sp_event post type.
Version: 1.0
Author: Your Name
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
// Register custom rewrite rules
function custom_event_rewrite_rules() {
add_rewrite_rule(
'(?:event|game)/.*?[/]?([0-9]+)[/]?$',
'index.php?post_type=sp_event&p=$matches[1]',
'top'
);
}
add_action('init', 'custom_event_rewrite_rules');
// Customize the permalink structure
function custom_event_permalink($permalink, $post) {
if ($post->post_type !== 'sp_event') {
return $permalink;
}
$event = new SP_Event($post->ID);
$teams = get_post_meta($post->ID,'sp_team', false);
$format = get_post_meta($post->ID,'sp_format', true);
sort($teams);
$seasons = get_the_terms($post->ID, 'sp_season', true );
if ($seasons) {
$seasons_slug = implode(
"-",
array_map(function($season){return $season->slug;},$seasons),
);
} else {
$seasons_slug = "no-season";
};
// Get the teams associated with the event
$team_1 = get_post($teams[0]);
$team_2 = get_post($teams[1]);
switch ($format) {
case 'league':
$format_string = 'game';
break;
case 'tournament':
$format_string = 'game';
break;
case 'friendly':
$format_string = 'event';
break;
default:
$format_string = 'event';
break;
}
if ($team_1 && $team_2) {
$permalink = home_url($format_string ."/". $seasons_slug . '/' . $team_1->post_name . '-' . $team_2->post_name . '/' . $post->ID);
}
return $permalink;
}
add_filter('post_type_link', 'custom_event_permalink', 10, 2);
// Flush rewrite rules on activation and deactivation
function custom_event_rewrite_flush() {
custom_event_rewrite_rules();
flush_rewrite_rules();
}
register_activation_hook(__FILE__, 'custom_event_rewrite_flush');
register_deactivation_hook(__FILE__, 'flush_rewrite_rules');
// Modify the query to handle custom permalinks and include future posts
function custom_event_parse_request($query) {
$post_type = sp_array_value( $query->query, 'post_type', null );
if (isset($query->query_vars['post_type']) && $query->query_vars['post_type'] === 'sp_event') {
if (isset($query->query_vars['p'])) {
$query->set('post_type', 'sp_event');
$query->set('p', $query->query_vars['p']);
$query->set('post_status', array('publish', 'future'));
}
}
}
add_action('pre_get_posts', 'custom_event_parse_request');

View File

@@ -16,3 +16,4 @@
// Include other files here
require_once plugin_dir_path(__FILE__) . 'includes/open-graph-tags.php';
require_once plugin_dir_path(__FILE__) . 'includes/featured-image-generator.php';
require_once plugin_dir_path(__FILE__) . 'includes/sp-event-permalink.php';